Come riparo "ImportError: impossibile importare il nome IncompleteRead"?


284

Quando provo a installare qualcosa con pipo pip3, ottengo:

$ 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'

Ho un sistema Ubuntu 14.10.

Come posso risolvere questo problema?


1
possibilmente correlato: stackoverflow.com/questions/27318535/…
cel

@cel: Questo non è un duplicato, perché è per Windows e l'ho già visto.
Martin Thoma,

Il link nella risposta accettata punta al tracker dei problemi di Ubuntu - quindi questo problema non sembra essere specifico di Windows. Hai provato a reinstallare Python come OPsuggerito?
cel

@cel Non importa, ho appena trovato una soluzione abbastanza semplice.
Martin Thoma,

4
... quale era cosa?
Jonathan Hartley,

Risposte:


433

Mentre questa risposta precedente potrebbe essere la ragione, questa snipped ha funzionato per me come soluzione (in Ubuntu 14.04):

Rimuovere innanzitutto il pacchetto dal gestore pacchetti:

# apt-get remove python-pip

E quindi installa l'ultima versione a fianco:

# easy_install pip

(grazie a @Aufziehvogel, @JunchaoGu)


10
Per gli interessati:: --upgrade (-U)aggiornamento forzato (cerca le ultime versioni di PyPI)
Martin Thoma il

11
Devi solo stare attento, non confondere il tuo gestore di pacchetti nativo (apt) a lato installandolo easy_install. Se possibile, lo consiglierei apt-get remove pipe poi easy_install pip.
Aufziehvogel,

16
@Aufziehvogelapt-get remove python-pip
eggonlegs,

7
Fondamentalmente questa risposta peggiora ulteriormente la situazione.
hek2mgl,

7
Per me, questo era 'apt-get remove python3-pip', seguito da 'apt-get install python3-setuptools', seguito da 'easy_install3 pip'
Jason Pepas

85

Questo problema è causato da una mancata corrispondenza tra l'installazione del pip e l'installazione delle richieste.

A partire dalla richiesta la versione 2.4.0 requests.compat.IncompleteRead è stata rimossa . Le versioni precedenti di pip, ad esempio da luglio 2014 , facevano ancora affidamento IncompleteRead. Nella versione corrente di pip, l'importazione di IncompleteReadè stata rimossa.

Quindi quello da incolpare è:

  • richieste, per rimuovere le API pubbliche troppo rapidamente
  • Ubuntu per aggiornare pip troppo lentamente

È possibile risolvere questo problema, aggiornando pip tramite Ubuntu (se esiste una versione più recente) o installando pip oltre a Ubuntu.


3
richieste di installazione pip -U, risolto il problema.
jonincanada,

2
@jonincanada come dovrei eseguire un comando pip quando pip si blocca?
Peter,

80

Per riparare pip3 (ha funzionato su Ubuntu 14.10):

easy_install3 -U pip

2
Funziona anche con Ubuntu 14.04. Essere consapevoli che questo installa un /usr/local/bin/pipche è per Python3; in precedenza aveva pipeseguito una versione di Python 2. L'ho risolto disabilitando /usr/local/bin/pipcompletamente quindi devo eseguire esplicitamente pip2o pip3.
Nelson,

3
su Debian Jessieper python2.7- dopo aver eliminato pip sudo apt-get purge python-requestse reinstallato con apt-get (mostrato in un'altra risposta), l'esecuzione easy_install -U pipha funzionato .
MikeiLL,

1
Per me più di ogni altra cosa; questa è la soluzione che ha funzionato per me.
Hamid,

Funziona come un fascino!
Fallito scienziato il

33

Oppure puoi rimuovere tutto requests.

Per esempio:

  • rm -rf /usr/local/lib/python2.7/dist-packages/requests*

Questo ha funzionato per me. Posso sapere qual è la relazione tra le richieste e l'installazione di Python-Pip
Roselyn Verbo Domingo,

Se guardi al requestsmodulo, vedrai che questo modulo / lib è usato per inviare richieste HTTP. pipIl modulo ha bisogno del requestsmodulo per scaricare i pacchetti da `Richieste dell'indice dei pacchetti . And the Python` rimosse dall'utente ha un'altra versione che piprichiede l'installazione.
Marius Stanca,

Questo ha funzionato anche per me; Ho riscontrato l'errore durante l'esecuzione di un playbook Ansible che utilizzava il pipmodulo per installare dipendenze su una nuova / nuova installazione di Raspbian Jessie (per Raspberry Pi). Dopo aver eliminato il pacchetto dist di richieste, tutto funziona alla grande.
Geerlingguy,

Ha funzionato anche per me. Ho aggiornato il mio sistema operativo da wheezy a jessie, quindi potrebbe aver rotto qualcosa. I tre metodi sopra indicati non hanno funzionato per me prima di tutto. Tuttavia, se ho usato il metodo 3 e quindi il comando rm -rf, ho scoperto che funzionava.
Eamonn Kenny,

questo ha fatto il lavoro, pur mantenendo pip dal repository debian. molte grazie!
Stefan

23

Su Ubuntu 14.04 ho risolto questo problema usando lo script bootstrap di installazione pip, come descritto nella documentazione

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

Questa è una soluzione OK per un ambiente di sviluppo.


Questo risolve il problema. Peccato che un tale problema sia ancora aperto sulla versione LTS.
ganesshkumar,

Ho avuto questo problema in Ubuntu 15 e sembra funzionare. Lo script get-pip.py diceva che avevo già il pacchetto che stavo cercando, ma mi ha suggerito di usare sudo con il flag -H che credo funzioni.
Rick Henderson,

17

Il problema è il modulo Python requests. Può essere riparato da

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

Se hai questo problema con Python 3, devi scrivere python3invece di python.


4
È assolutamente una bella soluzione.
Trilli domenica

8
Bello sapere purge. Questo non ha ancora installato una versione funzionante di pip e quando ho provato a eseguire from requests.compat import IncompleteReadnell'interfaccia della riga di comando di Python ha dato lo stesso errore. Quello che DID funzionava, dopo aver eseguito i comandi precedenti, era in esecuzioneeasy_install -U pip
MikeiLL,

Questa è la soluzione migliore che non coinvolge easy_install e non blocca il sistema rimuovendo prima pip.
Marc Tamsky,

9

Questo dovrebbe funzionare per te. Segui questi semplici passaggi.

Innanzitutto, rimuoviamo il pip che è già installato in modo che non causi alcun errore.

Terminale aperto.

Digitare: sudo apt-get remove python-pip

Rimuove il pip che è già installato.

Metodo-1

Passaggio: 1 sudo easy_install -U pip

Installa pip l'ultima versione.

E restituirà il suo indirizzo: Installato /usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

o

Metodo-2

Passaggio: 1 vai a questo link .

Passaggio: 2 Fare clic con il pulsante destro del mouse >> Salva con nome .. con nome get-pip.py.

Passo: 3 usa: cd per andare nella stessa directory del tuo file get-pip.py

Passaggio: 4 utilizzare: sudo python get-pip.py

Installa pip l'ultima versione.

o

Metodo-3

Passaggio: 1 uso: sudo apt-get install python-pip

Installa pip l'ultima versione.


Potresti aggiungere qualche dettaglio in più alla tua risposta?
abarisone,

Sicuro. Ma dove ti sei confuso?
kiok46

Grazie ho rimosso python-pip e quindi utilizzato easy_install. pip funziona di nuovo.
Phansen,

@phansen no problem (y)
kiok46

8

La semplice esecuzione ha easy_install -U piprisolto il mio problema.


2
Commentando in modo antico per esprimere il mio stupore per il fatto che ho dovuto guadare attraverso un filo di persone che spurgavano vari software solo per trovare questa soluzione molto semplice e utile. Non sono sicuro di quali fossero le limitazioni quando è stata posta la domanda, ma ha funzionato .
mttpgn

5

Controlla se hai una versione precedente di requestsseduto nel tuo ~/.local/lib/python2.7/site-packages/e rimuovila se è il caso (cambia il percorso per riflettere la tua versione di Python). Questo ha risolto il problema per me.


5

La mia versione di pip su Ubuntu suggerisce:

  pip install --upgrade pip

4
Non ha funzionato per me poiché pip è totalmente ostacolato da questo errore. Qualsiasi utilizzo (anche pip --version) mostra l' cannot import name IncompleteReaderrore, quindi purtroppo pip non è in grado di aggiornarsi da solo
Abe Voelker,

In realtà funziona su un'installazione pulita di Ubuntu 14.04 (bootstrap da minbase). In qualche modo pipriesce ad aggiornarsi senza fare riferimento al requestsmodulo.
ony

Questo non funzionerà con un pip rotto - un dilemma di pollo o uovo.
Arnie97,

4

In Windows, ha funzionato da un prompt amministrativo:

  • Elimina C:\Python27\Lib\site-packages\requests*
  • easy_install requests==2.3
  • pip install --upgrade pip
  • pip install --upgrade requests

Installato / reinstallato python-requestse python3-requestsquale pip3 fisso. Aveva fatto l'errore di installare python3.6beta e poi python3.6rc.
Noobninja,

3

Ho provato con ogni risposta avobe, ma non ci sono riuscito.

Fatto questo e ha funzionato

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

Dopo di che ho appena installato virtualenv con pip

sudo pip install virtualenv

Ho creato il virtualenv su cui stavo lavorando e il pacchetto è stato installato facilmente. Entra in virtualenv usando source /bin/activate e prova a installare il tuo pacchetto, ad esempio:

pip install terminado

Ha funzionato per me, anche se stavo usando python2.7 e non python3


0

Verifica se un interprete Python è attivo in una delle finestre del terminale. Se è così uccidilo e prova sudo pipquale ha funzionato per me.


0
  1. sudo apt-get remove python-pip
  2. sudo easy_install richieste == 2.3.0
  3. sudo apt-get install python-pip


0

Per CentOS l'ho usato e ha funzionato, per favore usa i seguenti comandi:

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

(conferma che tutte quelle librerie sono state rimosse)

sudo yum install python-urllib3
sudo yum install python-requests
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.