946 Stimmen

Wie aktualisiere / upgrade ich pip selbst innerhalb meiner virtuellen Umgebung?

Ich kann von pip verwaltete Pakete aktualisieren, aber wie aktualisiere ich selbst pip? Laut pip --version habe ich derzeit pip 1.1 in meinem virtualenv installiert und möchte auf die neueste Version aktualisieren.

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.

0 Stimmen

@Cairnarvon Das Paket heißt immer noch pip, auch wenn der Befehl pip3 heißt.

1579voto

Cairnarvon Punkte 24280

pip ist nur ein PyPI-Paket wie jedes andere; Sie könnten es verwenden, um sich selbst auf die gleiche Weise zu aktualisieren, wie Sie jedes Paket aktualisieren würden:

pip install --upgrade pip

Auf Windows ist der empfohlene Befehl:

py -m pip install --upgrade pip

67 Stimmen

Unter Windows hatte ich ein Berechtigungsproblem beim Versuch, pip mit pip zu aktualisieren. Stattdessen habe ich easy_install zum Aktualisieren verwendet: easy_install pip

10 Stimmen

Als ich das gemacht habe, schien pip ein Upgrade durchzuführen (1.1 -> 1.4), aber wenn ich "pip --version" eingebe, wird immer noch die alte Version 1.1 angezeigt. Habe versucht, das virtuelle Umfeld zu deaktivieren und wieder zu aktivieren, aber es zeigt immer noch die alte Version an.

51 Stimmen

Auf Windows ist es wahrscheinlich besser, den Befehl python -m pip install --upgrade pip zu verwenden, um zu vermeiden, dass pip.exe aus dem Skriptverzeichnis ausgeführt wird.

122voto

Janusz Skonieczny Punkte 15373

Die sicherere Methode besteht darin, pip über ein Python-Modul auszuführen:

python -m pip install -U pip

Auf Windows scheint es ein Problem mit Binärdateien zu geben, die versuchen, sich selbst zu ersetzen. Diese Methode umgeht diese Einschränkung.

14 Stimmen

Das ist jetzt das, was pip selbst empfiehlt, wenn es eine neuere Version von sich selbst erkennt.

6 Stimmen

Ich glaube, der Grund, warum dies sicherer ist, liegt darin, dass auf einigen Betriebssystemen (Windows) das direkte Ausführen von pip eine Dateisperre auf die ausführbare Datei erstellen kann, was das Aktualisieren verhindern würde. Indem Sie Python aufrufen und ihm sagen, das Modul direkt zu laden, umgehen Sie den Zugriff auf die ausführbare Datei.

1 Stimmen

Sie müssen das Eingabeaufforderungsfenster im Administratormodus ausführen, um dies zum Laufen zu bringen. Ich habe mehrere andere Vorschläge ausprobiert und nichts hat funktioniert, bis ich das Eingabeaufforderungsfenster im Adminmodus neu gestartet habe, dann hat dieser Befehl einwandfrei funktioniert.

56voto

jmoz Punkte 7527

In meinem Fall war meine Pip-Version defekt, sodass das Update allein nicht funktionieren würde.

Fix:

(im Virtualenv): easy_install -U pip

0 Stimmen

Ebenso hier, das ist der einzige Weg, der für mich auf Debian funktioniert. Die Verwendung von Python oder Pip zum Aktualisieren von Pip innerhalb des Virtualenvs würde fehlschlagen, da es sich weigerte, das vorhandene Pip außerhalb des venv zu deinstallieren.

0 Stimmen

Das Ausführen dieser Anzeige hat mir viele Informationen gezeigt, einschließlich Downloadfehler auf https://pypi.python.org/simple/pip/: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 Warnprotokollversion (_ssl.c:590) -- Einige Pakete sind möglicherweise nicht verfügbar!, was beim Ausführen von --upgrade nicht angezeigt wurde. Es ist wahrscheinlich der Grund dafür, dass das Installieren eines beliebigen pip-Pakets fehlschlägt und warum das Aktualisieren von pip durch pip ebenfalls fehlschlägt, SSL scheint kaputt zu sein.

0 Stimmen

Lebensretter, danke. Habe alles andere versucht und nur dies hat unter Windows 10 funktioniert.

19voto

Eamonn Kenny Punkte 1601

Ich habe alle oben genannten Lösungen unter Debian Jessie ausprobiert. Sie funktionieren nicht, da der Debian-Paketmanager nur die neueste Version kompiliert, die 1.5.6 entspricht, was der Version 6.0.x entspricht. Einige Pakete, die pip als Voraussetzung benötigen, werden daher nicht funktionieren, wie zum Beispiel spaCy (das die Option --no-cache-dir benötigt, um korrekt zu funktionieren).

Der beste Weg, diese Probleme tatsächlich zu lösen, besteht darin, get-pip.py herunterzuladen und mit wget von der Website oder mit curl wie folgt auszuführen:

 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 installiert, die zum Zeitpunkt der Erstellung dieser Lösung 9.0.1 ist, was weit über das hinausgeht, was Debian bereitstellt.

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

4 Stimmen

Hilfreich, wenn pip install --upgrade pip fehlschlug

1 Stimmen

Wenn ich diese Antwort mehrmals upvoten könnte, würde ich das tun. Dadurch konnte ich ein Problem lösen, bei dem pip 9.x mit einem SSL-Fehler fehlschlug, indem ich auf pip 10.x aktualisierte. Siehe stackoverflow.com/questions/25981703/…

1 Stimmen

Nun, wenn du es auch nur einmal hochgevotet hast, werde ich glücklich sein. Meine Antworten werden normalerweise nach einer Stunde oder zwei des Suchens und Jahren der Erfahrung gefunden. Kann man das Gleiche für meine Fragen sagen? Leute können wirklich gemein sein! :)

15voto

Rohan Devaki Punkte 2161

Für Windows,

  • gehe zum Eingabeaufforderung
  • und verwende diesen Befehl
  • python -m pip install -–upgrade pip
  • Vergiss nicht, den Editor neu zu starten, um Fehler zu vermeiden
  • du kannst die Version von pip überprüfen, indem du
  • pip --version
  • wenn du eine bestimmte Version von pip installieren möchtest, zum Beispiel Version 18.1, verwende diesen Befehl,
  • python -m pip install pip==18.1

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X