TL;DR我需要一个模块,它会自动更新我的脚本在后台,默默地。
我有一个Python脚本,我分发给用户。我经常更新这个,然后让他们更新它(通过PIP)。显然,这并不是用户的优先级,他们只是想使用应用程序,而不是考虑更新它。
我想它自动更新我的应用程序,像谷歌浏览器一样,默默地,在后台,自动。有没有图书馆已经允许我这样做了?如果没有,是否有一种直接的方法可以使用PIP/分发模块来完成?
如果pip安装已经为您工作,为什么您不能在脚本启动时执行os.system("pip install -U myscript")
?这有点脏,但通过pip分发给非开发人员也是如此。
要做到这一点,最简单的方法是设置一个web服务,脚本在运行时ping该服务。web服务可以返回一个版本号,脚本可以根据自己的版本号对其进行检查。如果版本号更高,它可以自我更新并重新运行。
我已经在我正在开发的一个开源应用程序中试用了BitRock。它们为具有自动更新功能的应用程序提供跨平台安装程序。如果您的应用程序是开源的,许可是免费的,但是商业产品需要购买许可。如果您的应用程序很小,那么它可能是多余的,但我认为我仍然会把它作为一个选项。
另一种简单的方法是使用cronjobs更新脚本。例如,您希望在每周一次的周日更新模块。因此,为此目的,在终端
中写入以下命令crontab - e
然后在文件末尾写入以下行:
00 00 * * SUN python3 -m pip install
上面的行将在周日00:00自动再次安装模块。