2024-04-29 08:05:39 发布
网友
我有一个桌面应用程序,我正在使用PyInstaller来生成取消分发文件。
PyInstaller
我选择PyInstaller而不是py2exe,因为它很容易使用,我不需要关心windows dll,但是当我使用py2exe时,我可以简单地使用Esky来自动更新,但不能与PyInstaller一起使用。
py2exe
所以我不知道如何启动自动更新应用程序。有人有一些想法,或者只是知道如何使用PyInstaller和esky?
还有http://www.pyupdater.org/我看这里没有引用
前一段时间我也遇到过同样的问题——所以我写了一个小库(updater4pyi)来在MacOSX、Linux和Windows上做到这一点。你可以从PyPI获得它例如
updater4pyi
> pip install updater4pyi
源存储库位于:https://github.com/phfaist/updater4pyi。
这是一个小而不太成熟的项目。它应该尽可能灵活,例如不依赖任何特定的gui工具包。我已经在不同的平台上做了一些测试,但是可能仍然有bug。我希望它对其他人也有用。
您可以为主应用程序创建一个启动程序应用程序,并在其中添加所有更新逻辑。启动程序应用程序执行以下操作:
显示一个弹出窗口(这将向用户提供程序正在加载的快速反馈)
检查本地和存储库版本
如果本地<;远程(例如v1.0<;v2.0),则:
。。。。在远程存储库中检查是否存在名为updater v2.0.exe的更新程序应用程序。
。。。。。。。。如果有:下载,运行并退出。(见下文)
。。。。。。。。如果没有:下载最新的主应用程序exe并替换本地应用程序exe(在这一步要注意文件访问权限--您正在尝试写入c:\程序文件)。
如果“本地”>;“远程”,则:
。。。。显示错误/警告,但如果这是开发人员工作站,则除外(您需要为此设置)
启动主应用程序。
更新程序应用程序的目的是适应获取新的主应用程序exe不够的情况。我还使用它来更新启动程序应用程序本身(这就是为什么启动程序一运行更新程序就退出的原因-顺便说一下,在试图覆盖laucher可执行文件之前,请给windows一点时间)
还有http://www.pyupdater.org/我看这里没有引用
前一段时间我也遇到过同样的问题——所以我写了一个小库(
updater4pyi
)来在MacOSX、Linux和Windows上做到这一点。你可以从PyPI获得它例如源存储库位于:https://github.com/phfaist/updater4pyi。
这是一个小而不太成熟的项目。它应该尽可能灵活,例如不依赖任何特定的gui工具包。我已经在不同的平台上做了一些测试,但是可能仍然有bug。我希望它对其他人也有用。
您可以为主应用程序创建一个启动程序应用程序,并在其中添加所有更新逻辑。启动程序应用程序执行以下操作:
显示一个弹出窗口(这将向用户提供程序正在加载的快速反馈)
检查本地和存储库版本
如果本地<;远程(例如v1.0<;v2.0),则:
。。。。在远程存储库中检查是否存在名为updater v2.0.exe的更新程序应用程序。
。。。。。。。。如果有:下载,运行并退出。(见下文)
。。。。。。。。如果没有:下载最新的主应用程序exe并替换本地应用程序exe(在这一步要注意文件访问权限--您正在尝试写入c:\程序文件)。
如果“本地”>;“远程”,则:
。。。。显示错误/警告,但如果这是开发人员工作站,则除外(您需要为此设置)
启动主应用程序。
更新程序应用程序的目的是适应获取新的主应用程序exe不够的情况。我还使用它来更新启动程序应用程序本身(这就是为什么启动程序一运行更新程序就退出的原因-顺便说一下,在试图覆盖laucher可执行文件之前,请给windows一点时间)
相关问题 更多 >
编程相关推荐