我为 pyload 编写了 2-3 个插件。
有时它们会发生变化,我通过论坛让用户知道有新版本。
为了避免这种情况,我想为我的脚本提供自动自我更新功能。https://github.com/Gutz-Pilz/pyLoad-stuff/blob/master/FileBot.py
这么容易设置的东西吗?
或者有人可以给我指出一个方向?
提前致谢!
这是可能的,但有一些注意事项。但它很容易变成非常复杂。在您不知不觉中,您的自动更新“功能”将比原始代码更大!
首先你需要有一个 URLalways包含最新版本。由于您正在使用 github,因此使用raw.githubusercontent
可能会做得很好。
让您的代码从该 URL 下载最新版本(例如使用requests
),并将该版本与当前代码中的版本进行比较。为此,我建议使用简单的整数版本号,因此您不需要任何复杂的解析逻辑。
但是,您可能需要考虑每天或每周只运行一次该检查。如果每次运行文件时都这样做,服务器可能会受到重击!因此,现在您必须保存一个文件,其中包含上次完成检查的日期,并读取该文件以查看是否需要再次运行检查。该文件需要保存在您可以在代码可能运行的每个平台上访问的位置。这本身就是一个挑战。
如果它只是一个单独的 python 文件,并且以运行它的用户身份安装,则更新相对容易。但是,如果原始版本以 root 身份安装在全局 Python 目录中,并且您的脚本以非特权用户身份运行,则会很困难。特别是如果它作为插件运行并且无法要求用户提供(临时)根凭据来安装文件。
如果新版本在标准库之外有更多依赖项,您该怎么办?
最后但并非最不重要的一点是,作为系统管理员,我不太喜欢自动更新软件。特别是对于关键的系统基础设施,我希望能够估计后果before更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)