2014-10-10 152 views
21

我做了pip install -U easyinstall,然後用pip install -U pip升級我的pip。但是,當我嘗試使用pip時,現在出現此錯誤:pip破壞升級後

[email protected]:/# which pip 
/usr/local/bin/pip 
[email protected]:/# pip 
bash: /usr/bin/pip: No such file or directory 

這是在docker鏡像中的Ubuntu 12.04上。

+0

您是否嘗試重新安裝點子? – AHuman 2014-10-10 15:24:46

+0

是的,但這只是讓我有一個未更新版本的點...再次開始這個循環 – dl8 2014-10-10 15:27:42

+0

你嘗試過'easy_install pip'嗎? – AHuman 2014-10-10 15:28:47

回答

55

其中一個原因是可以記住的位置。

您可以通過發出以下命令清除緩存的位置:

hash -r 

旁註:相反的which,使用type命令,你可以看到哈希的位置:

$ type pip 
pip is /usr/local/bin/pip 
$ pip -V 
pip 1.5.6 from /usr/local/lib/python2.7/dist-packages (python 2.7) 
$ type pip 
pip is hashed (/usr/local/bin/pip) 
+1

@downvoter:我可以知道爲什麼嗎? – falsetru 2016-05-31 14:55:40

0

如果做hash -r沒有按沒有工作,有可能在/usr/local/bin/中安裝了新的pip,而不是/usr/bin/中的舊版本。而且恰巧新的位置不在搜索可執行文件的路徑列表中。

在這種情況下,要麼固定的路徑列表複製可執行文件:

cp -p /usr/local/bin/pip* /usr/bin/ 

您還可以硬連接,而不是複製他們的可執行文件(這可以確保未來的升級都正確完成)。