Pip kann nicht aktualisiert werden

21

Ich bin neu in Linux und Ubuntu.

Ich habe versucht, pip zu aktualisieren, bin aber auf Folgendes gestoßen ...

$ sudo pip install --upgrade pip
Cannot fetch index base URL https://pypi.python.org/simple/
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-7.1.0-py2.py3-none-any.whl#md5=b108384a762825ec20345bb9b5b7209f
  Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB): 1.1MB downloaded
Installing collected packages: pip
  Found existing installation: pip 1.5.4
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pip
Cleaning up...

Irgendeine Idee warum?

Spencer Lee
quelle
2
versuchen , das aptheißt ein sudo apt-get install python-pipUpgradepip
heemayl
hmmm ... sagt, es ist die aktuellste Version ... liegt das daran, dass apt-get und pip ihre Pakete aus verschiedenen Quellen beziehen? (Wäre das ein Unterschied zwischen apt-get und pypi?) 'python-pip ist bereits die neueste Version.'
Spencer Lee
Das heißt, es ist auf dem neuesten Stand ...
Tim
1
mit Ausnahme von running: pip list --outdated pip gibt Folgendes zurück: pip (Current: 1.5.4 Latest: 7.1.0) Es konnten keine Downloads gefunden werden, die die Anforderungen von python-apt erfüllen. Einige extern gehostete Dateien wurden ignoriert (use --allow- externe Python-Apt zu ermöglichen).
Spencer Lee

Antworten:

3

Bearbeiten:

pip install -U pip

oder

pip install --upgrade pip

-Uist eine Abkürzung für --upgrade.


Alte Antwort:

Das aptSystem und PyPIverwendet zwei verschiedene Mechanismen.

In Ubuntus Repositorys sind viele Module von pythonals Pakete verfügbar, aber im Vergleich zu PyPI (The Python Package Index) sind sie nicht sehr zahlreich . Um beim Aktualisieren eines Pakets konsistent zu bleiben, müssen Sie die Methode berücksichtigen, die Sie ursprünglich zum Installieren des Pakets verwendet haben.

Wenn Sie also ein Paket (Modul) von der PyPIVerwendung installiert haben pip, sollten Sie pipdas Paket von PyPI(einschließlich sich pipselbst) aktualisieren . Wenn Sie andererseits aptein Modul (als Paket) mithilfe aptdes Systems installiert haben, müssen Sie es erneut aktualisieren.

Kurz gesagt, führen Sie Folgendes aus, um python-pipauf die neueste Version zu aktualisieren :

sudo apt-get install python-pip
heemayl
quelle
4
Dies beantwortet die Frage nicht. python-pip aktualisiert pip nicht, sondern installiert nur eine sehr alte Version von pip so, dass pip sich nicht selbst aktualisieren kann.
Cerin
@Cerin Hast du die Antwort gründlich gelesen? python-pipist das Paket aus dem (offiziellen) Universe-Repository, während es von easy_installinstalliert wird PyPI. Wie immer enthalten die offiziellen Repositorys nicht das neueste Paket, um das System stabil zu halten (und Abhängigkeiten zu beheben).
Heemayl
6
@heemayl, OP hat gefragt, wie pip aktualisiert werden soll, und Sie haben sie effektiv angewiesen, eine alte Version von pip zu installieren. Die richtige Lösung besteht darin, python-pip zu deinstallieren und von PyPI aus zu installieren. Das Installieren von python-pip aktualisiert pip nicht.
Cerin
22

Versuchen Sie es mit easy_install:

easy_install -U pip
NamPNQ
quelle
1
Nicht sicher, ob diese Antwort noch gültig ist? In diesem Beitrag zu Stack Overflow wurde nach dem Thema "Warum pip over easy_install verwenden?" Gefragt. In dieser Antwort wurde Folgendes festgestellt: "Der einzige gute Grund, den ich kenne, um easy_install im Jahr 2015 zu verwenden, ist der Sonderfall der Verwendung von Apples vorinstalliertem Python Versionen mit OS X 10.5-10.8. "
Clearkimura
1
Konzentriere dich auf die Frage, die Frage ist "Pip kann nicht aktualisiert werden", und ich schlage ein Upgrade über easy_install vor, es funktioniert im Dezember 2015, ok?
NamPNQ
Erklären Sie den Abwählern, warum diese Antwort zuvor abgelehnt wurde? Es ist mir gelungen, einen aktuellen Kommentar unter diesem Beitrag zu finden , der hier zitiert wird: "easy_install -U pip von ByteCommander-Vorschlag hat für mich funktioniert. - Tampa, 1. Juni, um 12:23 Uhr". Die easy_installMethode funktioniert Berichten zufolge für einige Benutzer.
Clearkimura
1
Das hat bei mir (mit sudo) geklappt. Zuvor sudo apt-get install python-pipgab ich an, python-pip is already the newest version (8.1.1-2ubuntu0.4)dass 9.0.1 verfügbar war, aber nicht von installiert werden konnte pip install --upgrade pip(wodurch die Version 8.1.1 unverändert blieb). Nachdem easy_installdie Version aktualisiert wurde.
Kurt Peek
Dies funktioniert zwar, ersetzt jedoch systemverwaltete Dateien durch die neuere pipVersion. Eine Neuinstallation des python-pipPakets würde die Dateien erneut ersetzen. Anderer Code, der sich darauf stützt, dass die Paketversion vorhanden und korrekt ist, kann fehlerhaft sein (geringe Wahrscheinlichkeit, aber keine Null) und zusätzliche Dateien easy_installhinzufügen , die beim zukünftigen Upgrade auf eine neuere Version nicht entfernt werden . python-pip
Martijn Pieters
7

Ich hatte lange das gleiche Problem und fand heute die Lösung. Wenn Sie pip über python-pip installieren, laden Sie vom veralteten Linux-Server herunter. Sie sollten vom Python-Server herunterladen. Um dies zu lösen, gehen Sie wie folgt vor:

sudo apt-get purge pip
sudo apt-get install python-setuptools
sudo apt-get install python-dev 
sudo easy_install pip 
pip install pip --upgrade 
user730924
quelle
1
Vielen Dank für die Erklärung der Ursache des Problems. Ich musste das selbst herausfinden, bevor ich nach unten scrollen und diese Antwort sehen konnte.
G Gordon Worley III
Diese Befehle (2-3) sind falsch.
Joel G Mathew
@JoelGMathew muss nur ein Wort nach apt-get installieren
nurgasemetey
2

Eigentlich können Sie Ihr 'pip'-Skript bearbeiten:

von root:

$ which pip  # -> prints 'pip' location

$ nano `which pip` # -> open with your editor, note the backticks!

Ersetzen Sie die __requires__durch Ihre aktuelle Version wie folgt:

__requires__ = 'pip==7.1.2'

als editiere Zeile mit 'load_entry_point' Aufruf an:

load_entry_point(__requires__, 'console_scripts', 'pip')()

und:

$pip -V
pip 7.1.2 from /usr/local/lib/python2.7/dist-packages (python 2.7)

außerdem muss ich mein setuptools-paket aktualisieren , um einige pakete zu installieren.

s0rg
quelle
2

Dies wird durch einen Konflikt zwischen einer Version von pip, die von einem Systempaket wie beispielsweise python-pipbereitgestellt wird, und einer Version verursacht, die von PyPI über pip selbst bereitgestellt wird.

Um dies zu beheben, entfernen Sie einfach python-pipmit sudo apt-get purge python-pip.

Wenn Sie bereits die alte Version von pip verwendet haben, um eine neuere Version zu installieren, sollte die aktualisierte Version beibehalten werden /usr/local/bin. Wenn nicht, können Sie die neueste Version von Pip von Grund auf installieren:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | sudo python2.7
Cerin
quelle
1

Verwenden Sie diesen Link, um ein Upgrade durchzuführen. Grundsätzlich gilt:

  1. Laden Sie die Datei herunter get-pip.py
  2. Lauf python get-pip.py
Manish
quelle
1

Versuchen sudo -H pip3 install --upgrade pipSie, pip3 (für Python 3) zu aktualisieren. Umgekehrt können Sie auch sudo -H pip2 install --upgrade pippip aktualisieren (für Python 2).

BhushanDhamale
quelle
1

Ich bin auf dieses Problem gestoßen, als ich auf einem Remote-Computer arbeitete, auf den ich geraten bin. Ich hatte gerade Python 3 installiert und konnte Pip nicht zum Upgrade bewegen, obwohl ich versucht hatte, sowohl über Pip als auch über Apt-Get zu aktualisieren.

Abmelden vom Remote-Server und erneutes Anmelden behoben.

Blaugrüner Hobson-Lowther
quelle
0

Wenn python-pipvon apt-Repositorys mit sudo user-run installiertsudo -H install --upgrade pip installiert, gilt dies auch für die Installation von PIP-Modulen.

Hier die Ausgabe von meiner Konsole am 16.04

..... Successfully installed requests
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
:~$ pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 672kB/s 
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
:~$ sudo -H pip install --upgrade pip
Collecting pip
  Downloading pip-9.0.1-py2.py3-none-any.whl (1.3MB)
    100% |████████████████████████████████| 1.3MB 692kB/s 
Installing collected packages: pip
  Found existing installation: pip 8.1.1
    Not uninstalling pip at /usr/lib/python2.7/dist-packages, outside environment /usr
Successfully installed pip-9.0.1
:~$ 

Siehe auch Was ist das -H-Flag für pip? /programming/28619686/what-is-the-h-flag-for-pip

Gemeinschaft
quelle
0

Ich bin nur ein Anfänger, daher bin ich mir nicht sicher, aber wahrscheinlich hängt etwas mit den Unterschieden zwischen Python 2 und 3 zusammen. Ich denke, dass es nicht notwendig ist, ein Superuser zu sein, aber Sie können es einfach mit tun, pip3anstatt pipauch zu aktualisieren pip: pip3 install --upgrade pip

NBee
quelle
0

Ich habe ein ähnliches Problem beim Upgrade von Pip 9.0.3 auf Version 18.0.

Beim Upgrade wird also zuerst deinstalliert und dann die neueste Version installiert. Ich habe jedoch festgestellt, dass beim ersten Versuch "Erfolgreich deinstalliertes pip-9.0.3" angezeigt wird.

Bei nachfolgenden Versuchen erhalten wir den gleichen Fehler. Dies liegt daran, dass der pip-9.0.3 deinstalliert wird. Wie bei der akzeptierten Antwort habe ich pip als Administrator in meinem Windows 10-System installiert, die neueste Version erhalten und dann war alles in Ordnung.

Hoffe das hilft.

Eswar
quelle