2011-09-12 92 views
10

TL; DR我需要一个模块,它会自动更新我的脚本在后台,静静地。自动更新python脚本

我有一个Python脚本,我分发给用户。我经常更新这个,然后让他们更新它(通过PIP)。很明显,对于只想使用该应用的用户而言,这不是一个高优先级,而不是考虑更新它。

我希望它自动更新我的应用程序,就像Google Chrome自动在后台自动更新一样。有没有图书馆可以让我做到这一点?如果没有,是否有直接的方式使用PIP /分配模块来完成它?

+0

fyi - pip使用sudo/admin privs安装到系统目录中,因此用户可能没有更新的权限 – jterrace

+0

它可以用于安装在用户的homedir中(比如说我的〜/ .myCLIapp /下)吗?在最坏的情况下,我肯定可以安装virtualenv? –

回答

1

要做到这一点,最简单的方法是设置一个脚本在运行时脚本运行的Web服务。 Web服务可以返回一个版本号,脚本可以根据版本号检查版本号。如果版本号更高,它可以自行更新并重新运行。

+2

当然,我想到了这一点,并建立了一半的原型。但事情变得有点复杂 - 如果它变得比脚本更多,如果它具有依赖关系等等,这就是为什么我认为它应该可能使用PIP。 –

+0

我以前用简单的脚本Wilduck成功地使用了这种技术。保罗是正确的,它确实存在依赖问题。 – syrion

1

我试过用BitRock来开发我正在开发的开源应用程序。他们为具有自动更新的应用程序提供跨平台安装程序。如果您的应用程序是开源的,但许可证是免费的,但商业产品需要购买许可证。如果你的应用程序很小,这可能是过度的,但我想我仍然会把它作为一个选项。

1

如果pip install已经适合你,为什么你不能在脚本启动时执行os.system("pip install -U myscript")?这有点肮脏,但通过点子分发给非开发人员也是如此。