Wie installiere ich die neueste Version von pip, wenn ich die von Ubuntu bereitgestellte bereits installiert habe?


18

In Ubuntu 16.04, wenn Sie:

pip install --upgrade pip

du erhältst:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Meinetwegen. Versuchen Sie es jetzt

pip install --upgrade pip

und du bekommst:

Collecting pip
  Using cached pip-8.1.2-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Also, wie bekommt man eigentlich Pip 8.1.2?


Does sudo -H pip install --upgrade pipArbeit?
Edwinksl

@edwinksl: Es gibt die gleichen Ergebnisse wie die anderen Befehle.
user2413

Das scheint seltsam, da es bei mir funktioniert hat. Müssen wahrscheinlich einen Fehlerbericht einreichen.
Edwinksl

@edwinksl: danke. Ich warte noch ein paar Tage und mache das>
user2413

1
@edwinksl Ich habe gerade ein Problem geöffnet, falls jemand es verfolgen möchte.
Sethmlarson

Antworten:


13

Es ist keine gute Idee, das System-Python zu aktualisieren, es sei denn, Sie arbeiten tatsächlich an Ubuntu-Code und haben einen bestimmten Grund dafür. Es gibt viele Systemabhängigkeiten, die Sie durch ein Update mit pip aufheben können, anstatt die Python-Bibliotheken im APT-Repository zu verwenden.

Wenn Sie Python-Anwendungen entwickeln und Versionen von Bibliotheken ändern müssen, sollten Sie entweder die --user-Optionen verwenden, um Pipes auszuführen, oder ein virtuelles Env zum Speichern der Benutzerversionen der Bibliotheken erstellen.

Beide Methoden greifen auf die Verwendung von Systembibliotheken zurück, wenn sie keine eigenen Kopien haben. Virtualenv bietet weitere Optionen zur Steuerung dieses Feedbacks.

Pip mit --user

Dies ist so einfach wie das Hinzufügen von --user am Ende all Ihrer pip-Befehle. Dadurch werden Ihre Python-Bibliotheken in ~ / .local / lib / pythonX.X (wobei XX Ihre Python-Versionsnummer ist) abgelegt und durchsucht Hier müssen Sie nur vorsichtig mit root umgehen, wenn Sie sudo verwenden müssen, da dies Auswirkungen auf das Systempython haben kann.

virtualenv

Dies funktioniert auf ähnliche Weise wie oben, ist jedoch weniger an einen bestimmten Benutzer gebunden und unterliegt nicht der sudo-Einschränkung. Sie können auch ein virtuelles Env klonen und es aktualisieren, um die Änderungen zu testen, sodass Sie es wiederherstellen können, wenn es nicht funktioniert. http://docs.python-guide.org/en/latest/dev/virtualenvs/


1
Sie möchten wirklich eine alternative Installation von Python ausführen, wenn Sie 2.7 möchten, damit Sie nicht in die Python-Umgebung des Betriebssystems eingreifen. Von dort aus müssen Sie pip in der Alt-Installation vor dem Venv aktualisieren. Sie möchten auch, dass --no-cache-dir verhindert, dass die zwischengespeicherte Version installiert wird.
Wyrmwood

Das Aktualisieren von pip wirkt sich (in jedem Fall) nicht negativ auf Python 2.7 aus, das standardmäßig ausgeliefert wird.
Betroffener

10

Dies scheint ein Problem bei der Installation der .whl-Datei für pip8.1.2 zu sein. Ein pipWorkaround für die Installation von 8.1.2 besteht darin, die Quelle direkt von PyPi herunterzuladen und über zu installieren setup.py.

Folgendes hat für mich funktioniert:

wget https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb03c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz
tar -xzvf pip-8.1.2.tar.gz
cd pip-8.1.2
sudo python setup.py install

Dies ist natürlich keine Lösung für die Installation von Pip 8.1.2 über pip install --upgrade, sollte aber die Warnung erst dann unterdrücken , wenn dieses Problem behoben ist .


Es gibt einen Kommentar zu diesem Thread, der darauf hindeutet, dass dies teilweise mit dem Patchen der gepackten Version von pip durch Ubuntu zusammenhängt, um ein Upgrade der apt installierten Pakete zu verhindern.
Amias

5

sudo -H python -m pip install --upgrade pipwird Ihr Problem lösen. Wie oben bereits erwähnt, benötigt das System für bestimmte Dinge Python 2.7 ... Abgesehen davon können Sie pip upgraden, ohne dies zu beeinträchtigen, aber Sie können auch 3.5 nebenher installieren, wenn Sie möchten.

Dies -Hist ein Flag für sudodie Anforderung, dass die Sicherheitsrichtlinie die Umgebungsvariable HOME auf das Ausgangsverzeichnis setzt, das durch den Kennwortdatenbankeintrag des Zielbenutzers angegeben wird. Je nach Richtlinie kann dies das Standardverhalten sein.


Wenn jemand einen durchdachten Beitrag wie diesen ablehnen möchte, sollte er wirklich sagen, warum dies eine schlechte Form ist.
Javadba

Weil sie wütend sind und jemanden verärgern müssen. Wütend auf das, was Sie fragen, das Leben im Allgemeinen. Der Stapelüberlauf hat sich in nichts als einen Ort verwandelt, an dem man sich schikanieren lassen kann.
Betroffen am

2

Deinstallieren Sie pip mit apt-get und installieren Sie es mit easy_install. Es hat bei mir funktioniert.

sudo apt-get remove python-pip
sudo easy_install pip

easy_install schlägt fehl. Ich verstehe bash: /usr/bin/pip: No such file or directory. Und ich kann Pip jetzt auch nicht spülen. Ich hoffe, das Pip auf meiner Maschine ist nicht vollständig kaputt.
Dean Schulze
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.