更新python程序的常用策略是什么?

更新python程序的常用策略是什么?,python,windows-7,py2exe,Python,Windows 7,Py2exe,我有一个用python和py2exe编写的Windows程序。我想创建一个更新功能,以便软件可以随时更新 这方面的常见做法是什么 如果您认为您的代码可能会使其他人受益,您可以将其放在PyPI上。使用不同的版本只是更新软件包,或者告诉客户使用easy\u install获取最新版本。不过,这不会推送更新 您可以尝试Esky,它是一个自动更新框架,用于管理不同的版本,包括获取新版本和回滚部分更新。可以在PyPI上找到它 也就是说,我没有用过Esky。如果你想推出自己的自动更新功能,你可能想看看他们是

我有一个用python和py2exe编写的Windows程序。我想创建一个更新功能,以便软件可以随时更新


这方面的常见做法是什么

如果您认为您的代码可能会使其他人受益,您可以将其放在PyPI上。使用不同的版本只是更新软件包,或者告诉客户使用
easy\u install
获取最新版本。不过,这不会推送更新

您可以尝试Esky,它是一个自动更新框架,用于管理不同的版本,包括获取新版本和回滚部分更新。可以在PyPI上找到它


也就是说,我没有用过Esky。如果你想推出自己的自动更新功能,你可能想看看他们是如何做到的。

当你用py2exe打包一个应用程序时,结果通常是一个可执行文件(可能带有一些数据文件)。这是最简单的更新方法,建议用户每隔一段时间下载并安装一个新版本(如何向服务器检查是否存在这样的新版本是另一个问题)

如果您想减少用户必须进行的下载大小,应用程序通常会将自己拆分为多个DLL,并只更新相关的DLL。当你有一个Python应用程序时,你没有DLL,但是你有一个更简单的选择——你可以将你的应用程序的大部分逻辑保持在.pyc文件中的exe之外,并且只更新其中的一些.pyc文件

现在,请注意,.pyc文件很容易“反编译”成Python(原始代码的一个有点模糊的版本),但是使用py2exe制作exe并不安全,因为py2exe是开源软件,并且在exe中打包了所有相同的文件


总之,我的建议是不要麻烦。您的应用程序可以有多大?在当今的快速连接中,让用户下载一个全新的版本比花大量时间在程序中构建部分更新功能要容易得多。

与任何其他系统一样;一旦你使用py2exe,这就成了一个一般性的问题,而且它不再是Python,这一事实也没有什么特别之处。找一个更新或修补.exe(或二进制)文件的工具包——或者自己编写一个Python或其他语言(可能没那么难)。谢谢,代码的安全性不是什么大问题,我可能会在版本2.0之前将其开源。有没有什么好方法可以与程序通信,这样我就可以命令它执行弹出对话框?@Anteater7171:如果安全性没有问题,那么只需将所有Python库打包到一个目录中(py2exe有一个IIRC选项)。我不明白你的最后一个问题