自我更新 python 脚本

Self-updating python Scripts

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

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

类似的东西容易设置吗?

或者谁能给我指明方向?

提前致谢!

有可能,但有一些注意事项。但它很容易变得 非常复杂。 在您不知不觉中,您的自动更新 "feature" 将比原始代码更大!

首先你需要有一个URL,总是包含最新版本。由于您使用的是 github,因此使用 raw.githubusercontent 可能效果很好。

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

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

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

如果新版本在标准库之外有更多依赖项,你打算怎么办?

最后但同样重要的是,作为系统管理员,我不太喜欢自动更新软件。特别是对于关键系统基础架构,我希望能够在更新之前估计后果。