2013-03-05 448 views
286

我可以更新點管理的軟件包,但是如何更新點子本身?根據pip --version,我目前在我的virtualenv中安裝了pip 1.1,我想更新到最新版本。如何從我的虛擬環境中更新pip本身?

這是什麼命令?我需要使用分發還是有本地pip或virtualenv命令?我已經試過pip updatepip update pip沒有成功。

+18

'pip install --upgrade pip'?這只是另一個PyPI包。 – Cairnarvon 2013-03-05 10:34:07

+0

該命令給我「/ Users/zak/MyProject/venv/bin/pip install:error:no such option:--update」 – zakdances 2013-03-05 10:36:34

+3

它是'--upgrade',而不是'--update',對不起。我立即編輯了我的帖子,但你必須在錯誤的時間看到它。 – Cairnarvon 2013-03-05 10:37:30

回答

533

pip只是一個PyPI package像任何其他;你可以用它來升級自己,你會升級任何包以同樣的方式:

pip install --upgrade pip 

在Windows上,recommended command是:

python -m pip install --upgrade pip 
+31

在Windows下,我嘗試使用pip升級pip時出現權限問題。相反,我使用easy_install來升級:'easy_install pip' – bsa 2013-11-05 06:25:21

+6

當我做了這個點似乎升級(1.1 - > 1.4),但是當我做「點 - 版本」它仍然顯示舊版本1.1。試圖停用並再次激活virtualenv,但它仍然顯示舊版本。 – Zitrax 2013-12-02 11:46:25

+26

在Windows上最好使用如下命令:'python -m pip install --upgrade pip'以避免從腳本目錄運行pip.exe。 – bialix 2014-02-19 14:47:03

32

更安全的方法是run pip though a python module

python -m pip install -U pip 

在windows上,似乎有一個嘗試替換自己的二進制文件的問題,這種方法可以解決這個限制。

+5

這是現在pip本身推薦的,如果它檢測到它自己的更新版本。 – tephyr 2016-05-29 21:51:30

+1

我認爲這是更安全的原因是因爲在某些操作系統(Windows)上,只是直接運行pip可以在可執行文件上創建文件鎖定,這會阻止更新它。通過調用Python並告訴它直接加載模塊,避免訪問可執行文件。 – jpmc26 2016-07-15 15:44:14

0

在我的情況下,這從終端命令行曾在Debian的穩定

python3 -m pip install --upgrade pip 
5

在我的情況,我的點子版本被打破,從而自身的更新將無法正常工作。

修復:

(inside virtualenv):easy_install -U pip 
+0

這也是我的情況。我嘗試了所有其他方法,但只有這一個幫助我。謝謝 ! – levif 2017-08-23 11:01:22

+0

同樣在這裏,這是在Debian上爲我工作的唯一方法。使用python或pip從virtualenv內升級pip會失敗,因爲它拒絕卸載位於venv之外的現有pip。 – user3748764 2017-09-28 11:37:00

1

我嘗試了所有在Debian傑西上面提到的這些解決方案。它們不起作用,因爲它只需要debian軟件包管理器編譯的最新版本,它是1.5.6版本,相當於6.0.x版本。某些使用pip作爲先決條件的軟件包將無法用作結果,例如spaCy(它需要選項--no-cache-dir才能正常運行)。

因此,要解決這些問題的實際最好的方法是運行get-pip.py使用wget,從網站或者使用curl如下地址下載:

wget https://bootstrap.pypa.io/get-pip.py -O ./get-pip.py 
python ./get-pip.py 
python3 ./get-pip.py 

這將安裝現行版本在撰寫本文時,這個解決方案是9.0.1,遠遠超出了Debian所提供的。

$ pip --version 
pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python2.7/dist-packages (python 2.7) 
$ pip3 --version 
pip 9.0.1 from /home/myhomedir/myvirtualenvdir/lib/python3.4/site-packages (python 3.4) 
0

爲了讓我爲我工作,我不得不在Python目錄中使用Python命令提示符(在VS CODE的WIN10上)鑽取。在我的情況下,它在我的「AppData \ Local \ Programs \ Python \ python35-32」目錄中。從那裏現在我運行命令...

python -m pip install --upgrade pip 

這工作,我很好去。