自动更新使用pyinstaller生成的python可执行文件

Fer*_*ves 16 python py2exe pyinstaller esky

我有一个我正在处理的桌面应用程序,我正在使用它PyInstaller来生成de分发文件.

我选择PyInstallerpy2exe因为它非常容易使用而且我不需要关心windows dll,但是当我使用时py2exe我可以简单地使用Esky进行自动更新,但我无法使用它PyInstaller.

所以我不知道如何启动自动更新应用程序.有人有一些想法或只是知道我怎么能使用PyInstaller和esky?

ubu*_*gnu 10

还有PyUpdater。我看到这里没有引用


小智 7

我前段时间遇到了同样的问题 - 所以我updater4pyi在Mac OS X,Linux和Windows上编写了一个小型库().你可以从PyPI获得它,例如

> pip install updater4pyi
Run Code Online (Sandbox Code Playgroud)

源存储库位于:https://github.com/phfaist/updater4pyi.

这是一个小而不太成熟的项目.它意味着尽可能灵活,而不是依赖于任何特定的gui工具包.我已经在不同的平台上做了一些测试,但可能还有bug.我希望它对其他人也有用.

  • 仅当存储库未存档时:( (3认同)

nde*_*mou 6

您可以为主应用程序创建一个启动器应用程序,并在那里添加所有更新逻辑.启动器应用程序执行以下操作:

显示弹出窗口(这会向用户提供程序正在加载的快速反馈)

检查本地和存储库版本

如果本地<远程(比如v1.0 <v2.0)那么:

....在远程存储库中检查是否存在名为updater_v2.0.exe的更新程序应用程序.

........如果有的话:下载它运行并退出.(见下文)

........如果没有:下载最新的主应用程序exe并替换本地应用程序(请注意此步骤中的文件访问权限 - 您正在尝试写入c:\ program files).

如果local> remote则:

....显示错误/警告,除非这是一个开发人员工作站(你需要一个设置)

启动主应用程序.

更新程序应用程序的目的是适应获取新的主应用程序exe的情况不足的情况.我也使用它来更新启动器应用程序本身(这就是启动器在运行更新程序后立即退出的原因 - 在尝试覆盖laucher可执行文件之前,BTW给了Windows一些时间)

  • 使用这种方法您很有可能找到开源应用程序,也许它比视频更适合您。我无法分享任何 python 代码,因为我只在 VBScript 中实现了它(根本不喜欢它)。我*可以*为 python 制作视频,但为什么我*应该*;-) (2认同)
  • [PyUpdater](https://github.com/Digital-Sapphire/PyUpdater) 基本上执行此处描述的操作,无需单独的启动器。 (2认同)