Ich kann Pip-verwaltete Pakete aktualisieren, aber wie aktualisiere ich Pip selbst? Laut pip --version
habe ich derzeit Pip 1.1 in meiner 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 pip update
und pip update pip
bereits ohne Erfolg ausprobiert.
pip
ist nur ein PyPI-Paket wie jedes andere; Sie können es verwenden, um sich auf dieselbe Weise wie jedes Paket zu aktualisieren:
pip install --upgrade pip
Unter Windows ist der empfohlene Befehl :
python -m pip install --upgrade pip
Die sicherere Methode ist, pip durch ein Python-Modul auszuführen:
python -m pip install -U pip
Unter Windows scheint es ein Problem mit Binärdateien zu geben, die versuchen, sich selbst zu ersetzen.
In meinem Fall war meine Pip-Version defekt, so dass das Update alleine nicht funktionieren würde.
Fix:
(inside virtualenv):easy_install -U pip
Ich habe alle oben genannten Lösungen unter Debian Jessie ausprobiert. Sie funktionieren nicht, da sie nur die neueste Version des Debian-Paketmanagers verwenden, die 1.5.6 ist, was Version 6.0.x entspricht. Einige Pakete, die pip als Voraussetzungen verwenden, funktionieren nicht als Ergebnis, z. B. spaCy (für dessen korrekte Funktion die Option --no-cache-dir erforderlich ist).
Der beste Weg, um diese Probleme zu lösen, ist die Ausführung von get-pip.py 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 des Schreibens dieser Lösung 9.0.1 ist, was weit über das von Debian hinausgeht.
$ 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)
In meinem Fall funktionierte dies von der Terminal-Befehlszeile in Debian Stable
python3 -m pip install --upgrade pip
Öffnen Sie die Eingabeaufforderung mit Administratorberechtigungen und wiederholen Sie den Befehl:
python -m pip install --upgrade pip
Damit dies für mich funktioniert, musste ich im Python-Verzeichnis mit dem Python-Befehl Prompt (unter WIN10 von VS CODE) einen Drilldown durchführen. In meinem Fall war es in meinem Verzeichnis "AppData\Local\Programs\Python\python35-32". Ab da lief ich den Befehl ...
python -m pip install --upgrade pip
Das hat funktioniert und ich bin gut zu gehen.
Sehr einfach. Laden Sie einfach pip von https://bootstrap.pypa.io/get-pip.py herunter. Speichern Sie die Datei in einem Ordner oder Dekstop. Ich habe die Datei in meinem D-Laufwerk gespeichert. Navigieren Sie dann in Ihrer Eingabeaufforderung zu dem Ordner, in den Sie pip heruntergeladen haben. Dann dort eingeben
python -get-pip.py
Single Line Python-Programm
Der beste Weg, den ich gefunden habe, ist das Schreiben eines einzeiligen Programms, das das offizielle get-pip-Skript herunterlädt und ausführt. Siehe unten für den Code.
Die offiziellen Dokumente empfehlen die Verwendung von curl zum Herunterladen des get-pip-Skripts. Da ich jedoch an Windows arbeite und curl nicht installiert habe, ziehe ich es vor, Python selbst zu verwenden, um das Skript herunterzuladen und auszuführen.
Hier ist das einzeilige Programm, das mit Python 3 über die Befehlszeile ausgeführt werden kann:
python -c "import urllib.request; exec(urllib.request.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"
Diese Zeile erhält das offizielle Skript "get-pip.py" gemäß Installationshinweise und führt das Skript mit dem Befehl "exec" aus.
Für Python2 würden Sie "urllib.request" durch "urllib2" ersetzen:
python -c "import urllib2; exec(urllib2.urlopen('https://bootstrap.pypa.io/get-pip.py').read())"
Vorsichtsmaßnahmen
Es ist erwähnenswert, dass das direkte Ausführen eines Python-Skripts an sich gefährlich ist. Aus diesem Grund empfehlen die offiziellen Anweisungen, das Skript herunterzuladen und vor der Ausführung zu überprüfen.
Das heißt, viele Leute prüfen den Code nicht wirklich und führen ihn einfach aus. Dieses einzeilige Programm macht das einfacher.
Ich war in einer ähnlichen Situation und wollte das urllib3-Paket aktualisieren. Was bei mir funktioniert hat war:
pip3 install --upgrade --force-reinstall --ignore-installed urllib3==1.25.3
Ich hatte Python in C:\Python\Python36 installiert, also ging ich zur Windows-Eingabeaufforderung und gab "cd C:\Python\Python36" ein, um in das richtige Verzeichnis zu gelangen. Dann wurde "python -m install --upgrade pip" eingegeben gut!
Ich hatte ein ähnliches Problem bei einem Raspberry Pi.
Das Problem war, dass http SSL benötigt, und daher musste ich es zwingen, https zu verwenden, um diese Anforderung zu umgehen.
Sudo pip install --upgrade pip --index-url=https://pypi.python.org/simple
oder
Sudo pip-3.2 --upgrade pip --index-url=https://pypi.python.org/simple/
pip Version 10 hat ein Problem. Es wird sich als Fehler manifestieren:
[email protected]:~/mydir$ Sudo pip install --upgrade pip
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
from pip import main
ImportError: cannot import name main
Die Lösung besteht darin, in dem Server zu sein, den Sie aktualisieren möchten, und dann auszuführen:
Sudo myvenv/bin/pip install --upgrade pip
anstatt nur
Sudo pip install --upgrade pip
Wenn Sie venv verwenden, führt eine Aktualisierung der Pip-Installation zu einem Upgrade der System-Pip anstelle der Venv-Pip. Sie müssen auch die Pip-Bootstrapping-Pakete aktualisieren.
python3 -m pip install --upgrade pip setuptools wheel
Das Aktualisieren von pip mit 'pip install --upgrade pip' funktioniert aufgrund des gefürchteten Zertifizierungsproblems nicht immer: Beim Bestätigen des SSL-Zertifikats ist ein Problem aufgetreten: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1-Warnung Protokollversion
Ich benutze gerne den Befehl eine Zeile für virtuelle Umgebungen:
curl https://bootstrap.pypa.io/get-pip.py | python -
Oder wenn Sie die Box breit installieren möchten, benötigen Sie sie
curl https://bootstrap.pypa.io/get-pip.py | Sudo python -
sie können curl mit einem -s -Flag versehen, wenn Sie die Ausgabe in einem Automatisierungsskript stummschalten möchten.
Auf meinem Laptop mit Windows 7 können Sie die neueste Version von pip auf folgende Weise installieren:
python.exe -m pip install --upgrade pip