2016-11-11 27 views
4

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

当升级失败时,有没有办法让pip恢复原始egg文件?

+1

'sudo pip install xxYYxxxx --upgrade --exists-action b'如果存在则升级它,如果存在则创建备份('--exists-action b')。 – dsgdfg

+0

或许'pip install PACKAGE --upgrade --force-reinstall'?它不会恢复原来的,但它应该重新安装包。 – alphadelta

+2

“linux怪胎”?那么,将/usr/local/lib/python2.7放在专用的LVM分区上,然后使用LVM快照? :) –

回答

0

如果你想重新安装一个特定的版本,你可以指定它与pip install xxx==1.0

0

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

  • 删除2.0安装
    • 什么是做到这一点需要依赖于升级如何 “失败” 没有必要,如果
  • 然后pip install.egg
    • 升级“失败”的方式仍然列为已安装