2013-03-05 10 views
286

Jestem w stanie zaktualizować pakiety zarządzane przez pip, ale jak mogę zaktualizować pip? Według pip --version, mam aktualnie zainstalowaną pip 1.1 w moim virtualenv i chcę zaktualizować do najnowszej wersji.Jak zaktualizować pip z poziomu mojego wirtualnego środowiska?

Co to jest polecenie? Czy muszę używać dystrybucji lub czy istnieje natywne polecenie pip lub virtualenv? Próbowałem już pip update i pip update pip bez powodzenia.

+18

'instalacja pip - aktualizacja pip'? To tylko kolejny pakiet PyPI. – Cairnarvon

+0

To polecenie daje mi "/ Users/zak/MyProject/venv/bin/pip install: błąd: brak takiej opcji: --update" – zakdances

+3

To jest '--upgrade', a nie' --update', przepraszam. Natychmiast zmieniłem mój post, ale musiałeś zobaczyć go dokładnie w niewłaściwym czasie. – Cairnarvon

Odpowiedz

533

pip to po prostu PyPI package jak każdy inny; można używać go uaktualnić sobie ten sam sposób, jak uaktualnić dowolny pakiet:

pip install --upgrade pip 

W Windows recommended command jest:

python -m pip install --upgrade pip 
+31

W Windowsie miałem problem z uprawnieniami do próby aktualizacji pip za pomocą pip. Zamiast tego użyłem easy_install do uaktualnienia: 'easy_install pip' – bsa

+6

Kiedy to zrobiłem, wydaje się, że pipsy aktualizują się (1.1 -> 1.4), ale kiedy robię" pip --version ", to wciąż pokazuje starą wersję 1.1. Próbowałem dezaktywować i aktywować virtualenv ponownie, ale wciąż pokazuje starą wersję. – Zitrax

+26

W systemie Windows prawdopodobnie lepiej jest użyć polecenia w ten sposób: 'python -m pip install --upgrade pip', aby uniknąć uruchamiania pip.exe z katalogu scripts. – bialix

32

Im bardziej bezpieczna metoda jest run pip though a python module:

python -m pip install -U pip 

W Windowsie występuje problem z plikami binarnymi, które starają się zastąpić, ta metoda działa wokół tego ograniczenia.

+5

To jest to, co sam pip zaleca, jeśli wykryje nowszą wersję samego siebie. – tephyr

+1

Wierzę, że powodem, dla którego jest to bezpieczniejsze, jest to, że w niektórych systemach operacyjnych (Windows), po prostu uruchomienie pip bezpośrednio może utworzyć blokadę pliku na pliku wykonywalnym, co uniemożliwiłoby aktualizację. Wywołując Python i mówiąc mu, aby załadował moduł bezpośrednio, unikasz dostępu do pliku wykonywalnego. – jpmc26

0

W moim przypadku to działało z wiersza poleceń terminala w Debianie Stable

python3 -m pip install --upgrade pip 
5

W moim przypadku moja wersja pip został złamany, więc zmiana sama w sobie nie będzie działać.

Fix:

(inside virtualenv):easy_install -U pip 
+0

To była też moja sprawa. Próbowałem wszystkich innych metod, ale tylko ten pomaga mi. Dzięki ! – levif

+0

To samo, to jedyny sposób, który działa dla mnie w Debianie. Użycie Pythona lub PIP do aktualizacji PIP z poziomu virtualenv zakończyłoby się niepowodzeniem, ponieważ odmówił odinstalowania istniejącej pip poza siedzibą. – user3748764

1

Próbowałem wszystkich tych rozwiązań wymienionych powyżej pod Debianem Jessie. Nie działają, ponieważ po prostu pobiera najnowszą wersję kompilacji przez menadżera pakietów debian, który jest 1.5.6, co odpowiada wersji 6.0.x. Niektóre pakiety, które używają pip jako wymagań wstępnych, nie będą działały jako wyniki, takie jak spaCy (która potrzebuje opcji --no-cache-dir do poprawnego działania).

więc rzeczywista najlepszym sposobem rozwiązania tego problemu jest uruchomienie get-pip.py pobrane za pomocą wget, ze strony internetowej lub za pomocą curl następująco:

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

To będzie zainstalować aktualną wersję, która w chwili pisania tego rozwiązania jest to 9.0.1, co jest daleko poza tym, co zapewnia 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

Aby uzyskać to do pracy dla mnie miałem drążyć w katalogu Pythona przy użyciu wiersza polecenia Pythona (na WIN10 z VS Code). W moim przypadku był w moim katalogu "AppData \ Local \ Programs \ Python \ python35-32". Od tej pory uruchomiłem polecenie ...

python -m pip install --upgrade pip 

To działało i dobrze mi idzie.