【问题标题】:automatically update python script自动更新python脚本
【发布时间】:2011-11-15 13:41:25
【问题描述】:

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

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

我希望它自动更新我的应用程序,就像 Google Chrome 一样,在后台静默地自动更新。是否有允许我这样做的库?如果没有,有没有一种直接的方法来使用 PIP/distribute 模块来做到这一点?

【问题讨论】:

  • fyi - pip 使用 sudo/admin privs 安装到系统目录中,因此用户可能没有更新权限
  • 可以用来安装在用户的homedir(比如我的~/.myCLIapp/下)吗?在最坏的情况下,我肯定可以安装 virtualenv?

标签: python pip distribute automatic-updates


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    最简单的方法是设置一个 web 服务,脚本在运行时会 ping 通。 Web 服务可以返回一个版本号,脚本可以检查它自己的版本号。如果版本号更高,它可以自行更新并重新运行。

    【讨论】:

    • 当然,我已经想到了这一点,并制作了半个原型。但是事情变得有点复杂——如果它不仅仅是一个脚本怎么办,如果它有依赖关系等等怎么办。这就是为什么我认为它可能应该使用 PIP。
    • Wilduck,我过去曾成功地将这种技术用于简单脚本。 Paul 是正确的,它确实存在依赖问题。
    【解决方案3】:

    我已经为我正在开发的开源应用程序尝试了BitRock。它们为具有自动更新的应用程序提供跨平台安装程序。如果您的应用程序是开源的,则许可是免费的,但商业产品需要购买许可证。如果您的应用程序很小,这可能有点矫枉过正,但我​​认为我仍然会将其作为一种选择。

    【讨论】:

      猜你喜欢
      • 2010-12-17
      • 1970-01-01
      • 2012-02-06
      • 2012-12-29
      • 2019-04-15
      • 2022-06-15
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多