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

2024-04-29 08:05:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个桌面应用程序,我正在使用PyInstaller来生成取消分发文件。

我选择PyInstaller而不是py2exe,因为它很容易使用,我不需要关心windows dll,但是当我使用py2exe时,我可以简单地使用Esky来自动更新,但不能与PyInstaller一起使用。

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


Tags: 文件应用程序windows桌面dllpyinstaller关心py2exe
3条回答

还有http://www.pyupdater.org/我看这里没有引用

前一段时间我也遇到过同样的问题——所以我写了一个小库(updater4pyi)来在MacOSX、Linux和Windows上做到这一点。你可以从PyPI获得它例如

> pip install updater4pyi

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

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

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

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

检查本地和存储库版本

如果本地<;远程(例如v1.0<;v2.0),则:

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

。。。。。。。。如果有:下载,运行并退出。(见下文)

。。。。。。。。如果没有:下载最新的主应用程序exe并替换本地应用程序exe(在这一步要注意文件访问权限--您正在尝试写入c:\程序文件)。

如果“本地”>;“远程”,则:

。。。。显示错误/警告,但如果这是开发人员工作站,则除外(您需要为此设置)

启动主应用程序。

更新程序应用程序的目的是适应获取新的主应用程序exe不够的情况。我还使用它来更新启动程序应用程序本身(这就是为什么启动程序一运行更新程序就退出的原因-顺便说一下,在试图覆盖laucher可执行文件之前,请给windows一点时间)

相关问题 更多 >