更新 python 程序的常见策略有哪些?

发布于 2024-10-07 13:33:28 字数 90 浏览 4 评论 0原文

我有一个用 python 和 py2exe 制作的 Windows 程序。我想创建一个更新功能,以便可以轻松更新软件。

解决这个问题的常见方法有哪些?

I have a Windows program that I made with python and py2exe. I'd like to create an updating feature so that the software can be readily updated.

What are common ways of going about this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最美不过初阳 2024-10-14 13:33:28

如果您认为您的代码可能会让其他人受益,您可以将其放在 PyPI 上。那么拥有不同的版本只是更新您的软件包,或者告诉您的客户使用 easy_install 来获取最新版本。但这不会推送更新。

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

也就是说,我没有使用过 Esky。如果您希望推出自己的自动更新功能,您可能需要查看 盒装骰子 看看他们是如何解决的。

If you think your code might benefit others, you could put it up on PyPI. Then having different versions is just updating your package, or telling your clients to use easy_install to get the latest version. This doesn't push updates, though.

You can try Esky, which is an auto-update framework for managing different versions, including fetching new versions and rolling back partial updates. It can be found on PyPI.

That said, I haven't used Esky. If you wish to roll your own auto-update feature, you might want to look at Boxed Dice to see how they got around to it.

刘备忘录 2024-10-14 13:33:28

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

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

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

总而言之,我的建议是不要打扰。您的应用程序可以有多大?凭借当今的快速连接,让用户下载全新版本比投入大量时间在程序中构建部分更新功能更容易。

When you package an app with py2exe, the result is usually a single executable (perhaps with some data files). This is simplest to update by just proposing the user to download and install a new version every once in a while (how you check with a server that such new version exists is a different question).

If you want to reduce the download size the user has to do, application commonly resort to breaking themselves up into multiple DLLs and updating only the relevant DLLs. When you have a Python application you don't have DLLs but you have an even easier option - you can just keep most of your app's logic outside the exe in .pyc files, and update just some of these .pyc files.

Now, mind you, .pyc files are easily "decompilable" into Python (a somewhat obfuscated version of your original code), but having an exe made with py2exe isn't much safer, because py2exe is open-source software and packs all the same files inside the exe anyway.

To conclude, my suggestion is don't bother. How large can your application be? With today's fast connections, it's easier to just make the user download a whole new version than to invest a lot of time into building partial-update functionality into your program.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文