我想知道你们中是否有人为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'
...
因此,如果版本标签大于本地模块中的版本,则更新程序将下载整个文件并替换它,然后(无论哪种方式)运行它。
最好的方法是什么?
谢谢!
您可以通过编程方式使用pip来安排cron中模块的更新,这样您就不需要请求版本,因为pip只会在必要时更新。
pip install --upgrade yourpackage
或
pip install --upgrade git+https://github.com/youracc/yourepo.git
另外,正如@riotburn所指出的,您应该使用虚拟环境来隔离您的环境,并且在必要时也可以回滚到以前的环境。在最后一个场景中,您可能会发现这个虚拟环境包装器非常有用。
您应该考虑使用virtualenv或conda来管理包中使用的依赖项。两者都允许您为安装特定版本的软件包创建独立的环境,以及从预定义的依赖项列表创建环境。Conda还具有像pip一样的包管理器的优点。如果您没有在此需求文件中指定版本,它将安装最新版本。然后,您可以编写一个bash脚本,自动执行用例所需的几个命令行。
尝试阅读python环境:
http://conda.pydata.org/docs/using/envs.html
https://virtualenv.pypa.io/en/latest/