【问题标题】:How to restore old egg file when upgrade fails?升级失败时如何恢复旧的egg文件?
【发布时间】:2017-03-25 15:54:40
【问题描述】:

我使用pip 安装了一个包xxx-1.0,它安装了鸡蛋文件/usr/local/lib/python2.7/dist-packages/xxx-1.0-py2.7.egg。 升级软件包后,文件xxx-1.0-py2.7.eggxxx-2.0-py2.7.egg 替换。 但是升级失败了。当我再次尝试升级时,pip 看到文件xxx-1.0-py2.7.egg 并抱怨它已经安装。 通过手动删除 egg 文件,我可以升级,但我不想这样做。

有没有办法让pip升级失败时恢复原来的egg文件?

【问题讨论】:

  • sudo pip install xxYYxxxx --upgrade --exists-action b 意思是如果旧则升级,如果存在则创建备份(--exists-action b)。
  • 也许是pip install PACKAGE --upgrade --force-reinstall?它不会恢复原来的,但它应该重新安装包。
  • “Linux 怪胎”?好吧,将 /usr/local/lib/python2.7 放在专用的 LVM 分区上,然后使用 LVM 快照? :)
  • 1)升级如何“失败”(元数据方面)? pip list 显示什么? 2)如果您使用pip,您如何拥有.eggs?默认情况下,它会以解压方式安装它们。

标签: python pip egg


【解决方案1】:

如果你有一个.egg,你实际上有一个分布。所以,

  • 删除2.0安装
    • 需要做什么取决于升级“失败”的方式
  • 然后pip install.egg
    • 如果升级“失败”而仍列为已安装,则不需要

【讨论】:

    【解决方案2】:

    如果您想重新安装特定版本,您可以使用pip install xxx==1.0 指定它。

    【讨论】:

      猜你喜欢
      • 2011-09-22
      • 2021-04-17
      • 1970-01-01
      • 2016-05-10
      • 2018-04-05
      • 1970-01-01
      • 2018-06-27
      • 2017-03-14
      • 1970-01-01
      相关资源
      最近更新 更多