我有一个用python和py2exe制作的Windows程序。我想创建一个更新功能,以便可以随时更新软件。
有什么常见的方法可以解决这个问题?
答案 0 :(得分:3)
如果您认为您的代码可能会让其他人感兴趣,那么您可以将其放在PyPI上。然后有不同的版本只是更新您的包,或告诉您的客户使用easy_install
来获取最新版本。但这并没有推动更新。
您可以尝试Esky,这是一个用于管理不同版本的自动更新框架,包括获取新版本和回滚部分更新。它可以在PyPI上找到。
那就是说,我没有使用过Esky。如果您希望推出自己的自动更新功能,可能需要查看Boxed Dice以了解他们是如何解决此问题的。
答案 1 :(得分:1)
当您使用py2exe打包应用程序时,结果通常是单个可执行文件(可能包含一些数据文件)。这是最简单的更新,只是建议用户每隔一段时间下载并安装一个新版本(如何检查服务器是否存在这样的新版本是另一个问题)。
如果要减少用户必须执行的下载大小,应用程序通常会将自己分解为多个DLL并仅更新相关的DLL。当你有一个Python应用程序时,你没有DLL,但你有一个更简单的选择 - 你可以将你的应用程序的大部分逻辑保存在.pyc文件中的exe之外,并只更新其中一些。 pyc文件。
现在,请注意,.pyc文件很容易被解压缩" Python(原始代码的一个有点混淆的版本),但使用py2exe制作的exe并不是更安全,因为py2exe是开源软件,无论如何都包含了exe内的所有相同文件。
总而言之,我的建议是不要打扰。你的申请有多大?通过今天的快速连接,让用户下载全新版本比投入大量时间在您的程序中构建部分更新功能更容易。