Wie aktualisiere ich pip auf den neuesten Stand?


51

Ich installierte pip mit get-pip.pydanach pip freezeunter Fehler auslöst

Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
    req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
  File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 299, in from_dist
    assert len(specs) == 1 and specs[0][0] == '=='
AssertionError

Storing debug log for failure in /home/simon/.pip/pip.log

Also habe ich geprüft, 1.7 ist die neueste. Wenn ich die folgenden Schritte befolgt habe und es nicht aktualisiert wird ... Hilf mir hier ...

simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)
simon@simon-OptiPlex-780:~/Nightybuild$ pip install -U pip
Downloading/unpacking pip
  Downloading pip-7.1.2-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
Successfully installed pip
Cleaning up...
simon@simon-OptiPlex-780:~/Nightybuild$ pip --version
pip 1.5.6 from /usr/lib/python2.7/dist-packages (python 2.7)

1
sudo -H pip3 install --upgrade pip
moldovean

Antworten:


54

Normalerweise führe ich einfach die folgenden Befehle aus, um ein Upgrade durchzuführen pip2(= pipstandardmäßig) und pip3:

sudo -H pip3 install --upgrade pip
sudo -H pip2 install --upgrade pip

Sie müssen sicherstellen, dass Sie die Version (für Python 2 oder 3), auf die Sie auf den Befehl pipohne Nummer reagieren möchten , als letztes aktualisieren .

Beachten Sie auch, dass hierdurch die alten apt-getPaketversionen oder ein anderer Paketmanager installiert bleiben, aber neue Versionen hinzugefügt werden, die nichts mit den Systempaketen zu tun haben. Die pip-installierten Pakete werden bevorzugt, aber Sie sollten die apt-get-installierten auch nicht entfernen , da der Paketmanager nicht wissen kann, dass eine pipandere Version installiert ist.


3
Warum ist es wichtig, zuhause zu sein sudo -H?
Léo Léopold Hertz 준영

11
@Masi Da pipwill man seine heruntergeladenen Dateien irgendwo hinschreiben , um sie zwischenzuspeichern. Es wurde implementiert, um sie in einem Unterordner des Basisverzeichnisses des aktuellen Benutzers abzulegen. Wenn Sie es ohne -Hausführen, wird es sich beschweren, da es feststellt, dass das aktuell eingestellte Basisverzeichnis (normaler Benutzer) nicht mit dem Benutzer übereinstimmt, unter dem es ausgeführt wird (root). Wenn es seine Dateien in Ihr Home-Verzeichnis schreibt, gehören sie root und sind für Sie als normaler Benutzer nicht mehr zugänglich. Daher werden die Dateien in diesem Fall nicht zwischengespeichert. Es ist nicht schrecklich, das wegzulassen, -Hwas es piperkennt und Sie warnt.
Byte Commander

1
Warum überschreiben beide Befehle nur den pipBefehl? Wenn ich ein Upgrade durchführe pip2, wird der pip2Befehl nur nicht aktualisiert pip.
Yep_It's_Me

@ Yep_It's_Me Das liegt daran, dass pipes relativ zu der Version von Python ist, die Sie aufrufen. und deswegen sind seine befehle pip2& pip3nennen jeweils die entsprechende version von python um pip zu aktualisieren. Ist das sinnvoll?
JayRizzo

27

Ich denke der

pip install --upgrade pip

Befehl funktioniert nicht mehr richtig. Der richtige Befehl sollte sein:

  • für Python 3:

    python3 -m pip install --upgrade pip
  • für Python 2:

    python2 -m pip install --upgrade pip

Gg @ david-foerster
JayRizzo

Verwenden Sie unter Linux einfach pip install -U pip(siehe Aktualisieren von pip )
Eido95,

1
Ich hatte Probleme beim Aktualisieren von pip von root (in einem Docker-Image) und dies funktionierte wie ein Zauber.
Cristian Ramon-Cortes

Arbeitete wie ein Charme auf Linux Mint
Hello World

5

Gehen Sie zu dieser Website https://pypi.python.org/pypi/pip

kopiere (oder) lade den Quelllink herunter (endet in .tar.gz)

Für 9.0.1 lautet der Link https://pypi.python.org/pypi?:action=show_md5&digest=35f01da33009719497f01a4ba69d63c9

Installationsvorgang

wget //link goes here
tar -xzvf pip-9.0.1.tar.gz
cd pip-9.0.1
sudo python3 setup.py install

Die Version sollte auf die neueste Version geändert werden, und der Link kann mit dem Link der neuesten Version aktualisiert werden

das sollte funktionieren


Dies ist das einzige, was bei mir funktioniert hat, da alles andere eine Verbindung zum Server von der Shell benötigt, die wiederum mit demselben Fehler fehlschlägt.
Alok Rajasukumaran

1

pip install -U pip

Die kürzeste, die ich kenne.


1

Ich denke, es ist erwähnenswert, dass das, was ich im Folgenden erkläre, ist, wenn Sie erwarten, dass pip auf Python 2 und pip3 auf Python 3 zeigt. Der Grund, warum ich dies erwähne, ist, dass beim Upgrade von pip3 auch der Befehl pip as übernommen wird Gut. Dies ist eine etwas seltsame Konvention, da Python standardmäßig auf 2.x und Python3 auf 3.x verweist. Davon abgesehen ...

Wenn Sie möchten, dass die neuesten Versionen von python 2.x pip und python 3.x pip3 auf demselben Computer vorhanden sind (mit pip für 2.x und pip3 für 3.x), müssen Sie folgende Schritte ausführen:

sudo apt-get install python-pip python3-pip --yes
sudo python3 -m pip install pip --upgrade --force
sudo python -m pip install pip --upgrade --force # this line associates pip with Python 2

Die anderen Antworten von anderen zur Verfügung gestellt nicht zu erwähnen , dass nach dem Ausführen pip sudo PIP3 installieren --upgrade Sie mit den am Ende dann pip Befehl Installieren von Paketen in den Python 3.x Verzeichnisse anstelle der Python 2.x - Verzeichnisse.

Ein Teil von mir denkt, wir sollten pip einfach nach dem Upgrade von pip3 verlassen (auch wenn es pip -> pip3 ist), aber es besteht die Gefahr, dass die Leute bereits erwarten, dass pip wie Python funktioniert - beide zeigen auf Python 2.x. Mit anderen Worten, Menschen sind wahrscheinlich in der Verwendung von pip / python für Python 2.x geschult, genau wie sie in der Verwendung von pip3 / python3 für Python 3.x geschult sind .


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.