来自github的Python自动更新程序

时间:2015-09-30 14:26:00

标签: python python-requests updates

我想知道是否有人为python应用程序实现了自动更新功能。我的想法是从github URL下载前100-200个字节(使用请求?),并连接版本标签。实施例

#!/usr/bin/env python
#######################
__author__ = '<a href="mailto:xxxx@gmail.com">xxx</a>'
__program__ = 'theprogram'
__package__ = ''
__description__ = '''This program does things'''
__version__ = '0.0.0'
...

因此,如果版本标记大于本地模块中的版本标记,则更新程序将下载整个文件并替换它,然后(或者两种方式)运行它。

这样做的最佳方式是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

您应该考虑使用virtualenv或conda来管理包中使用的依赖项。两者都允许您创建用于安装特定版本的软件包的隔离环境,以及从预定义的依赖项列表创建环境。 Conda还有像pip这样的包管理器。如果您未在此要求文件中指定版本,则会安装最新版本。然后你可以编写一个bash脚本来自动化为你的用例执行此操作所需的几行命令行。

尝试阅读python环境:

http://conda.pydata.org/docs/using/envs.html
https://virtualenv.pypa.io/en/latest/

答案 1 :(得分:1)

您可以使用pip以编程方式为cron中的模块安排更新,因此您不会需要请求版本,因为pip将仅在必要时更新。

pip install --upgrade yourpackage

pip install --upgrade git+https://github.com/youracc/yourepo.git

另外,正如@riotburn指出的那样,你应该使用virtualenv来隔离你的环境,如果有必要的话也可以回滚到前一个环境。在最后一个场景中,您可能会发现此virtualenv wrapper非常有用。

相关问题