Wie behebe ich 'ImportError: Name IncompleteRead kann nicht importiert werden'?

284

Wenn ich versuche, etwas mit pipoder zu installieren pip3, erhalte ich:

$ sudo pip3 install python3-tk
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python3/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name 'IncompleteRead'

Ich habe ein Ubuntu 14.10-System.

Wie kann ich dieses Problem beheben?

Martin Thoma
quelle
1
möglicherweise verwandt: stackoverflow.com/questions/27318535/…
cel
@cel: Dies ist kein Duplikat, da es für Windows ist und ich das bereits gesehen habe.
Martin Thoma
Der Link in der akzeptierten Antwort verweist auf den Issue-Tracker von Ubuntu. Dieses Problem scheint also nicht Windows-spezifisch zu sein. Haben Sie versucht, Python wie OPvorgeschlagen neu zu installieren ?
Cel
@cel Egal, ich habe gerade eine ganz einfache Lösung gefunden.
Martin Thoma
4
... was war was?
Jonathan Hartley

Antworten:

433

Während diese vorherige Antwort der Grund sein könnte, hat dieser Ausschnitt für mich als Lösung (in Ubuntu 14.04) funktioniert :

Entfernen Sie zuerst das Paket aus dem Paketmanager:

# apt-get remove python-pip

Und dann installieren Sie die neueste Version nebeneinander:

# easy_install pip

(danke an @Aufziehvogel, @JunchaoGu)

thomas.mc.work
quelle
10
Für Interessierte --upgrade (-U):: Upgrade erzwingen (durchsucht PyPI nach den neuesten Versionen)
Martin Thoma
11
Sie müssen nur vorsichtig sein, um Ihren nativen Paketmanager (apt) nicht durch die Nebeninstallation durch zu verwirren easy_install. Wenn möglich, würde ich empfehlen apt-get remove pipund dann easy_install pip.
Aufziehvogel
16
@Aufziehvogelapt-get remove python-pip
Eggonlegs
7
Grundsätzlich macht diese Antwort die Situation noch schlimmer.
hek2mgl
7
Für mich war dies 'apt-get remove python3-pip', gefolgt von 'apt-get install python3-setuptools', gefolgt von 'easy_install3 pip'
Jason Pepas
85

Dieses Problem wird durch eine Nichtübereinstimmung zwischen Ihrer Pip-Installation und Ihrer Anforderungsinstallation verursacht.

Ab Anfrage wurde Version 2.4.0 requests.compat.IncompleteRead entfernt . Ältere Versionen von Pip, z. B. ab Juli 2014 , haben sich immer noch darauf verlassen IncompleteRead. In der aktuellen Version von pip wurde der Import von IncompleteReadentfernt.

Schuld daran ist also entweder:

  • Anforderungen, um die öffentliche API zu schnell zu entfernen
  • Ubuntu für die zu langsame Aktualisierung von Pip

Sie können dieses Problem lösen, indem Sie entweder pip über Ubuntu aktualisieren (falls es eine neuere Version gibt) oder pip neben Ubuntu installieren.

Aufziehvogel
quelle
3
Pip Installationsanforderungen -U, das Problem wurde behoben.
Jonincanada
2
@ Jonincanada Wie soll ich einen Pip-Befehl ausführen, wenn Pip abstürzt?
Peter
80

Zum Reparieren von pip3 (funktioniert unter Ubuntu 14.10):

easy_install3 -U pip
Branden Ghena
quelle
2
Dies funktioniert auch in Ubuntu 14.04. /usr/local/bin/pipBeachten Sie, dass hierdurch eine Installation für Python3 installiert wird. zuvor piplief eine Python 2-Version. Ich habe es durch /usr/local/bin/pipvollständige Deaktivierung behoben, sodass ich explizit pip2oder ausführen muss pip3.
Nelson
3
auf Debian Jessiefür python2.7- nach dem Löschen von pip mit sudo apt-get purge python-requestsund dem erneuten Installieren mit apt-get (siehe eine andere Antwort) hat das Laufen easy_install -U pipden Trick getan.
MikeiLL
1
Für mich mehr als alles andere; Dies ist das Update, das für mich funktioniert hat.
Hamid
Klappt wunderbar!
Failed Scientist
33

Oder Sie können alle entfernen requests.

Beispielsweise:

  • rm -rf /usr/local/lib/python2.7/dist-packages/requests*
Marius Stanca
quelle
Das hat bei mir funktioniert. Darf ich wissen, in welchem ​​Verhältnis die Anfragen zur Installation von Python-Pip stehen
Roselyn Verbo Domingo
Wenn Sie auf requestsModul schauen, werden Sie sehen, dass dieses Modul / lib zum Senden von HTTP-Anforderungen verwendet wird. pipModul benötigt requestsModul zum Herunterladen von Paketen von "Python Package Index . And the Requests", die von Ihnen entfernt wurden, hat eine andere Version, pipdie installiert werden muss.
Marius Stanca
Das hat auch bei mir funktioniert; Beim Ausführen eines Ansible-Playbooks, das das pipModul zum Installieren von Abhängigkeiten von einer Neuinstallation von Raspbian Jessie (für Raspberry Pi) verwendete, ist der Fehler aufgetreten . Nach dem Löschen des request dist-Pakets funktioniert alles einwandfrei.
Geerlingguy
Hat auch für mich gearbeitet. Ich habe mein Betriebssystem von Wheezy auf Jessie aktualisiert, also ist möglicherweise etwas kaputt gegangen. Die drei oben genannten Methoden haben bei mir zunächst nicht funktioniert. Wenn ich jedoch Methode 3 und dann den Befehl rm -rf verwendete, stellte ich fest, dass es funktionierte.
Eamonn Kenny
Dies hat den Job gemacht, während Pip immer noch vom Debian-Repo ferngehalten wurde. Vielen Dank!
Stefan
23

Unter Ubuntu 14.04 habe ich dieses Problem mithilfe des Bootstrap-Skripts für die Pip-Installation behoben, wie in der Dokumentation beschrieben

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Das ist eine gute Lösung für eine Entwicklungsumgebung.

robert_b_clarke
quelle
Dies löst das Problem. Schade, dass ein solches Problem in der LTS-Version noch offen ist.
Ganesshkumar
Ich hatte dieses Problem in Ubuntu 15 und es scheint zu funktionieren. Das Skript get-pip.py sagte, ich hätte bereits das gesuchte Paket, schlug aber vor, sudo mit dem Flag -H zu verwenden, von dem ich glaube, dass es funktioniert.
Rick Henderson
17

Das Problem ist das Python-Modul requests. Es kann durch behoben werden

$ sudo apt-get purge python-requests
[now requests and pip gets deinstalled]
$ sudo apt-get install python-requests python-pip

Wenn Sie dieses Problem mit Python 3 haben, müssen Sie python3stattdessen schreiben python.

Martin Thoma
quelle
4
Es ist absolut eine schöne Lösung.
Basteln So
8
Cool zu wissen purge. Dies installierte immer noch keine funktionierende Version von pip und als ich versuchte, from requests.compat import IncompleteReadin der Python-CLI zu laufen , gab es den gleichen Fehler. Was DID funktionierte, nachdem die obigen Befehle ausgeführt wurden, liefeasy_install -U pip
MikeiLL
Dies ist die beste Lösung, bei der easy_install nicht erforderlich ist und die Ihr System nicht belastet, indem Sie zuerst pip entfernen.
Marc Tamsky
9

Dies sollte für Sie funktionieren. Befolgen Sie diese einfachen Schritte.

Entfernen wir zunächst den bereits installierten Pip, damit er keinen Fehler verursacht.

Terminal öffnen.

Art: sudo apt-get entferne Python-Pip

Es entfernt bereits installierte Pip.

Methode 1

Schritt: 1 sudo easy_install -U pip

Es wird die neueste Version von pip installiert.

Und gibt seine Adresse zurück: Installiert /usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

oder

Methode 2

Schritt: 1 gehe zu diesem Link .

Schritt: 2 Klicken Sie mit der rechten Maustaste auf >> Speichern unter .. mit dem Namen get-pip.py.

Schritt: 3 Verwenden Sie: cd, um in dasselbe Verzeichnis wie Ihre Datei get-pip.py zu wechseln

Schritt: 4 Verwenden Sie: sudo python get-pip.py

Es wird die neueste Version von pip installiert.

oder

Methode 3

Schritt: 1 benutze: sudo apt-get install python-pip

Es wird die neueste Version von pip installiert.

kiok46
quelle
Könnten Sie Ihrer Antwort etwas mehr Details hinzufügen?
Abarisone
Sicher. Aber wo bist du verwirrt?
Kiok46
Danke, ich habe Python-Pip entfernt und dann easy_install verwendet. pip arbeitet wieder.
Phansen
@phansen kein Problem (y)
kiok46
8

Einfach laufen hat easy_install -U pipmein Problem gelöst.

forzagreen
quelle
2
Ein alter Kommentar, um mein Erstaunen darüber auszudrücken, dass ich mich durch einen Faden von Leuten wühlen musste, um verschiedene Software zu löschen, um diese sehr einfache, hilfreiche Lösung zu finden. Ich bin mir nicht sicher, welche Einschränkungen es gab, als die Frage gestellt wurde, aber das hat funktioniert .
mttpgn
5

Überprüfen Sie, ob Sie eine ältere Version von requestsin Ihrem Sitz haben, ~/.local/lib/python2.7/site-packages/und entfernen Sie sie, falls dies der Fall ist (ändern Sie den Pfad, um Ihre Python-Version wiederzugeben). Dies löste das Problem für mich.

ggll
quelle
5

Meine Version von pip auf Ubuntu schlägt vor:

  pip install --upgrade pip
PhoebeB
quelle
4
Hat bei mir nicht funktioniert, da Pip von diesem Fehler völlig geplagt ist. Jede Verwendung (gerade pip --version) zeigt den cannot import name IncompleteReadFehler an, so dass pip leider nicht in der Lage ist, sich selbst zu aktualisieren
Abe Voelker
Eigentlich funktioniert dies bei einer Neuinstallation von Ubuntu 14.04 (Bootstrap von minbase). Irgendwie pipgelingt es, sich selbst zu aktualisieren, ohne auf das requestsModul zu verweisen .
Nur am
Dies funktioniert nicht mit einem kaputten Pip - einem Henne-Ei-Dilemma.
Arnie97
4

In Windows funktionierte dies über eine administrative Eingabeaufforderung:

  • Löschen C:\Python27\Lib\site-packages\requests*
  • easy_install requests==2.3
  • pip install --upgrade pip
  • pip install --upgrade requests
Jim Hunziker
quelle
Installiert / neu installiert python-requestsund python3-requestswelche feste pip3. Hatte den Fehler gemacht, python3.6beta und dann python3.6rc zu installieren.
Noobninja
3

Ich habe es mit jeder Antwort versucht, konnte es aber nicht schaffen.

Hab das gemacht und gearbeitet

sudo apt-get purge python-virtualenv
sudo pip install pip -U

Danach habe ich gerade virtualenv mit pip installiert

sudo pip install virtualenv

Ich habe die virtuelle Umgebung erstellt, an der ich gearbeitet habe, und das Paket war einfach zu installieren. Gehen Sie in die virtuelle Umgebung, indem Sie source /bin/activate versuchen, Ihr Paket zu installieren, zum Beispiel:

pip install terminado

Es hat bei mir funktioniert, obwohl ich python2.7 und nicht python3 verwendet habe

Bruno O. Sánchez
quelle
0

Überprüfen Sie, ob in einem der Terminalfenster ein Python-Interpreter aktiv ist. Wenn ja, töte es und versuche, sudo pipwas für mich funktioniert hat.

Samsamara
quelle
0
  1. sudo apt-get entferne Python-Pip
  2. sudo easy_install Anfragen == 2.3.0
  3. sudo apt-get installiere python-pip
Teddy
quelle
0

Für CentOS habe ich dies verwendet und es hat funktioniert. Bitte verwenden Sie die folgenden Befehle:

sudo pip uninstall requests
sudo pip uninstall urllib3
sudo yum remove python-urllib3
sudo yum remove python-requests

(Bestätigen Sie, dass alle diese Bibliotheken entfernt wurden.)

sudo yum install python-urllib3
sudo yum install python-requests
JohnBegood
quelle