2016-11-11 31 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
    • 升級「失敗」的方式仍然列爲已安裝