2013-03-05 9 views
286

Ich bin in der Lage, pip-verwalteten Pakete zu aktualisieren, aber wie aktualisiere ich pip selbst? Laut pip --version habe ich zur Zeit pip 1.1 in meinem virtualenv installiert und möchte auf die neuste Version updaten.Wie aktualisiere ich Pip selbst in meiner virtuellen Umgebung?

Was ist der Befehl dafür? Muss ich distribute verwenden oder gibt es einen nativen Pip- oder virtualenv-Befehl? Ich habe bereits pip update und pip update pip ohne Erfolg versucht.

+18

'pip install --upgrade pip'? Es ist nur ein weiteres PyPI-Paket. – Cairnarvon

+0

Dieser Befehl gibt mir "/ Benutzer/zak/MyProject/venv/bin/pip installieren: Fehler: keine solche Option: --update" – zakdances

+3

Es ist '--upgrade', nicht' --update', sorry. Ich habe meinen Beitrag sofort bearbeitet, aber Sie müssen ihn zur genau richtigen Zeit gesehen haben. – Cairnarvon

Antwort

533

pip ist nur ein PyPI package wie jeder andere; Sie es sich auf die gleiche Weise ein Upgrade nutzen könnten Sie jedes Paket aktualisieren würde:

pip install --upgrade pip 

unter Windows die recommended command ist:

python -m pip install --upgrade pip 
+31

Unter Windows hatte ich ein Berechtigungsproblem versucht, Pip mit Pip zu aktualisieren. Stattdessen habe ich easy_install zum upgraden benutzt: 'easy_install pip' – bsa

+6

Als ich das tat, schien pip zu aktualisieren (1.1 -> 1.4), aber wenn ich" pip --version "mache, zeigt es immer noch die alte Version 1.1. Habe versucht, den virtualenv wieder zu deaktivieren und zu aktivieren, aber es zeigt immer noch die alte Version. – Zitrax

+26

Unter Windows ist es wahrscheinlich besser, den folgenden Befehl zu verwenden: 'python -m pip install --upgrade pip', um das Ausführen von pip.exe aus dem Verzeichnis scripts zu vermeiden. – bialix

32

Je mehr sichere Methode ist run pip though a python module:

python -m pip install -U pip 

Unter Windows scheint es ein Problem mit Binärdateien zu geben, die versuchen, sich selbst zu ersetzen, diese Methode funktioniert um diese Einschränkung herum.

+5

Dies ist nun, was Pip selbst empfiehlt, wenn es eine neuere Version von sich selbst entdeckt. – tephyr

+1

Ich glaube der Grund, warum dies sicherer ist, ist, weil auf einigen Betriebssystemen (Windows), nur pip direkt ausführen kann eine Dateisperre für die ausführbare Datei erstellen, die eine Aktualisierung verhindern würde. Wenn Sie Python aufrufen und ihm mitteilen, dass das Modul direkt geladen werden soll, vermeiden Sie den Zugriff auf die ausführbare Datei. – jpmc26

0

In meinem Fall war dies von der Terminal-Befehlszeile in Debian Stable

python3 -m pip install --upgrade pip 
5

In meinem Fall meiner pip Version war gebrochen, so dass die Aktualisierung von selbst nicht funktionieren würde.

Fix:

(inside virtualenv):easy_install -U pip 
+0

Es war auch mein Fall. Ich habe alle anderen Methoden ausprobiert, aber nur dieser hilft mir. Vielen Dank ! – levif

+0

Das gleiche gilt auch für Debian. Python oder Pip zu verwenden, um pip aus dem virtualenv heraus zu verbessern, würde fehlschlagen, weil es sich weigerte, existierende Pips, die außerhalb des vents sitzen, zu deinstallieren. – user3748764

1

Ich habe versucht, alle diese Lösungen, die oben unter Debian Jessie erwähnt. Sie funktionieren nicht, weil sie nur die neueste Version benötigt, die vom Debian-Paketmanager kompiliert wird, nämlich 1.5.6, was der Version 6.0.x entspricht. Einige Pakete, die pip als Voraussetzung verwenden, funktionieren nicht als Ergebnis, z. B. spaCy (die Option --no-cache-dir benötigt die Funktion).

So ist der tatsächliche beste Weg, diese Probleme zu lösen, ist get-pip.py heruntergeladen mit wget zu laufen, von der Website oder unter Verwendung von curl wie folgt:

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

Dadurch wird die aktuelle Version installieren, die zum Zeitpunkt des Schreibens dieser Lösung ist 9.0.1, was weit über das hinausgeht, was Debian bietet.

$ 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

Um dies für mich zu arbeiten, musste ich im Python-Verzeichnis mit der Python-Eingabeaufforderung (auf WIN10 von VS CODE) aufschlüsseln. In meinem Fall war es in meinem Verzeichnis "AppData \ Local \ Programs \ Python \ python35-32". Von dort jetzt lief ich den Befehl ...

python -m pip install --upgrade pip 

Das funktionierte und ich bin gut zu gehen.

Verwandte Themen