自更新python脚本

自更新python脚本,python,auto-update,Python,Auto Update,我为pyload编写了2-3个插件。 有时它们会改变,我会通过论坛让用户知道有一个新版本 为了避免这种情况,我想给我的脚本一个自动自我更新功能。 像这样容易安装的东西 或者有人能给我指个方向 提前谢谢 这是可能的,但有一些警告。但它很容易变得非常复杂。在您知道之前,您的自动更新“功能”将比原始代码更大 首先,您需要有一个始终包含最新版本的URL。因为您使用的是github,所以使用raw.githubusercontent可能会非常好 让您的代码从该URL下载最新版本(例如,使用请求),并将该

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

为了避免这种情况,我想给我的脚本一个自动自我更新功能。

像这样容易安装的东西

或者有人能给我指个方向


提前谢谢

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

首先,您需要有一个始终包含最新版本的URL。因为您使用的是github,所以使用
raw.githubusercontent
可能会非常好

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

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

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

如果一个较新的版本在标准库之外有更多的依赖项,你会怎么做


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

更新是臭名昭著的。考虑当用户以错误的顺序应用更新时发生的情况,或者从(1.2)到1.4(没有1.3)的情况。什么能阻止你重新发布整个文件?以及替换整个代码?假设它检测到一个新版本可用,并且该文件将被它自己替换。如果这只是一个文件,那很好,我想你可能在谈论部分更新。