自更新 python 脚本

Gut*_*ilz 2 python auto-update

我为 pyload 编写了 2-3 个插件。有时他们会改变,我让用户通过论坛知道有一个新版本。

为了避免这种情况,我想给我的脚本一个自动更新功能。 https://github.com/Gutz-Pilz/pyLoad-stuff/blob/master/FileBot.py

这么容易设置的东西?

或者有人可以指出我的方向?

提前致谢!

Rol*_*ith 6

这是可能的,但有一些警告。但它很容易变得非常复杂。不知不觉中,您的自动更新“功能”将比原始代码更大!

首先,您需要有一个始终包含最新版本的 URL 。由于您使用的是 github,所以 usingraw.githubusercontent可能会做得很好。

让您的代码从该 URL 下载最新版本(例如使用requests),并将该版本与当前代码中的版本进行比较。为此,我会推荐一个简单的整数版本号,这样您就不需要任何复杂的解析逻辑。

但是,您可能只想考虑每天或每周只运行一次该检查。如果每次运行文件时都这样做,服务器可能会受到打击!因此,现在您必须保存带有上次完成检查日期的文件,并阅读该文件以查看是否需要再次运行检查。该文件需要保存在您可以在您的代码可能运行的每个平台上访问的位置。这本身就是一个挑战。

如果它只是一个单独的python文件,以运行它的用户身份安装,更新相对容易。但是,如果原始文件以 root 身份安装在全局 Python 目录中,并且您的脚本以非特权用户身份运行,这将很困难。特别是如果它作为插件运行并且不能要求用户提供(临时)root 凭据来安装文件。

如果新版本在标准库之外有更多依赖,你会怎么做?

最后但并非最不重要的一点是,作为系统管理员,我真的不喜欢自动更新软件。特别是对于关键系统基础设施,我希望能够更新之前估计后果。