当升级失败时,如何恢复旧的egg文件?

4
我用pip安装了一个名为xxx-1.0的软件包,它安装了一个名为/usr/local/lib/python2.7/dist-packages/xxx-1.0-py2.7.egg的egg文件。后来我升级了这个软件包,于是xxx-1.0-py2.7.egg就被xxx-2.0-py2.7.egg替换了。但是升级过程失败了。当我再次尝试升级时,pip发现了xxx-1.0-py2.7.egg这个文件,并抱怨说它已经被安装了。 通过手动删除egg文件,可以进行升级,但我不想这样做。 有没有办法让pip在升级失败时恢复原始的egg文件呢?

1
使用以下命令升级软件包并在存在旧版本时创建备份(--exists-action b):sudo pip install xxYYxxxx --upgrade --exists-action b - dsgdfg
也许使用 pip install PACKAGE --upgrade --force-reinstall 呢?它不会恢复原始状态,但应该能重新安装包。 - 0az
2
“Linux狂热者”?好的,将 /usr/local/lib/python2.7 放在专用的LVM分区上,然后使用LVM快照? :) - Stephane Martin
  1. 升级过程中“失败”了(元数据方面)吗?pip list 显示了什么?
  2. 如果你正在使用 pip,那么你怎么会有 .egg 文件呢?它默认会以未打包的方式安装。
- ivan_pozdeev
2个回答

0

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


0

如果您有一个.egg文件,那么您实际上拥有一个分发包。所以,

  • 删除2.0的安装
    • 需要做什么取决于升级的“失败”方式
  • 然后pip install旧的.egg
    • 如果升级以一种仍被列为已安装的方式“失败”,则不需要执行此步骤

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接