【问题标题】:Python auto updater from github来自 github 的 Python 自动更新程序
【发布时间】:2015-12-28 09:24:00
【问题描述】:

我想知道你们中是否有人为 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'
...

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

最好的方法是什么?

谢谢!

【问题讨论】:

  • 是的,您可以使用 requests 获取版本号,然后将其与此文件中的数字进行比较,然后执行一些操作。您可以在 cron 中运行它以使其间隔自动执行。

标签: python python-requests updates


【解决方案1】:

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

尝试阅读 python 环境:

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

【讨论】:

    【解决方案2】:

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

    pip install --upgrade yourpackage
    

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

    另外,正如@riotburn 所指出的,您应该使用 virtualenv 来隔离您的环境,并且在必要时还可以回滚到以前的环境。在最后一种情况下,您可能会发现 virtualenv wrapper 非常有帮助。

    【讨论】:

      猜你喜欢
      • 2021-02-21
      • 2021-04-25
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 2020-04-11
      • 1970-01-01
      • 2012-03-31
      • 2023-04-08
      相关资源
      最近更新 更多