Fer*_*ves 16 python py2exe pyinstaller esky
我有一个我正在处理的桌面应用程序,我正在使用它PyInstaller来生成de分发文件.
我选择PyInstaller了py2exe因为它非常容易使用而且我不需要关心windows dll,但是当我使用时py2exe我可以简单地使用Esky进行自动更新,但我无法使用它PyInstaller.
所以我不知道如何启动自动更新应用程序.有人有一些想法或只是知道我怎么能使用PyInstaller和esky?
小智 7
我前段时间遇到了同样的问题 - 所以我updater4pyi在Mac OS X,Linux和Windows上编写了一个小型库().你可以从PyPI获得它,例如
> pip install updater4pyi
Run Code Online (Sandbox Code Playgroud)
源存储库位于:https://github.com/phfaist/updater4pyi.
这是一个小而不太成熟的项目.它意味着尽可能灵活,而不是依赖于任何特定的gui工具包.我已经在不同的平台上做了一些测试,但可能还有bug.我希望它对其他人也有用.
您可以为主应用程序创建一个启动器应用程序,并在那里添加所有更新逻辑.启动器应用程序执行以下操作:
显示弹出窗口(这会向用户提供程序正在加载的快速反馈)
检查本地和存储库版本
如果本地<远程(比如v1.0 <v2.0)那么:
....在远程存储库中检查是否存在名为updater_v2.0.exe的更新程序应用程序.
........如果有的话:下载它运行并退出.(见下文)
........如果没有:下载最新的主应用程序exe并替换本地应用程序(请注意此步骤中的文件访问权限 - 您正在尝试写入c:\ program files).
如果local> remote则:
....显示错误/警告,除非这是一个开发人员工作站(你需要一个设置)
启动主应用程序.
更新程序应用程序的目的是适应获取新的主应用程序exe的情况不足的情况.我也使用它来更新启动器应用程序本身(这就是启动器在运行更新程序后立即退出的原因 - 在尝试覆盖laucher可执行文件之前,BTW给了Windows一些时间)