Como faço para corrigir 'ImportError: não é possível importar o nome IncompleteRead'?

284

Quando tento instalar qualquer coisa com pipou pip3, recebo:

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

Eu tenho um sistema Ubuntu 14.10.

Como posso resolver este problema?

Martin Thoma
fonte
1
possivelmente relacionado: stackoverflow.com/questions/27318535/…
cel
@cel: Esta não é uma duplicata, porque é para Windows e eu já vi isso.
Martin Thoma
O link na resposta aceita aponta para o rastreador de problemas do ubuntu - portanto, esse problema não parece ser específico do Windows. Você já tentou reinstalar o python como OPsugerido?
7264
@cel Não importa, eu acabei de encontrar uma solução bastante simples.
Martin Thoma
4
... qual foi o que?
Jonathan Hartley

Respostas:

433

Embora essa resposta anterior possa ser o motivo, esse snippet funcionou para mim como uma solução (in Ubuntu 14.04):

Primeiro remova o pacote do gerenciador de pacotes:

# apt-get remove python-pip

E instale a versão mais recente lado a lado:

# easy_install pip

(graças a @Aufziehvogel, @JunchaoGu)

thomas.mc.work
fonte
10
Para os interessados:: --upgrade (-U)force upgrade (pesquisa PyPI para as últimas versões)
Martin Thoma
11
Você só precisa ter cuidado, para não confundir o gerenciador de pacotes nativo (apt) ao instalar o lado easy_install. Se possível, eu recomendo apt-get remove pipe depois easy_install pip.
Aufziehvogel
16
@Aufziehvogelapt-get remove python-pip
eggonlegs
7
Basicamente, essa resposta torna a situação ainda pior.
Hek2mgl
7
Para mim, este foi 'apt-get remove python3-pip', seguido por 'apt-get install python3-setuptools', seguido por 'easy_install3 pip'
Jason Pepas
85

Esse problema é causado por uma incompatibilidade entre a instalação do pip e a instalação dos pedidos.

A partir dos pedidos, a versão 2.4.0 requests.compat.IncompleteRead foi removida . As versões mais antigas do pip, por exemplo, a partir de julho de 2014 , ainda dependiam IncompleteRead. Na versão atual do pip, a importação de IncompleteReadfoi removida.

Portanto, o culpado é:

  • solicitações, para remover a API pública muito rapidamente
  • Ubuntu para atualizar o pip muito lentamente

Você pode resolver esse problema, atualizando o pip via Ubuntu (se houver uma versão mais recente) ou instalando o pip além do Ubuntu.

Aufziehvogel
fonte
3
solicitações de instalação do pip -U, corrigido o problema.
Jonincanada
2
@jonincanada como devo executar um comando pip quando o pip trava?
Peter Peter
80

Para corrigir o pip3 (trabalhado no Ubuntu 14.10):

easy_install3 -U pip
Branden Ghena
fonte
2
Isso funciona no Ubuntu 14.04 também. Esteja ciente de que isso instala um /usr/local/bin/pipque é para Python3; pipexecutou anteriormente uma versão do Python 2. Eu o corrigi desativando /usr/local/bin/pipcompletamente, para que eu tenha que executar explicitamente pip2ou pip3.
Nelson
3
no Debian Jessiepara python2.7- depois de limpar o pip sudo apt-get purge python-requestse reinstalar com o apt-get (mostrado em outra resposta), a execução easy_install -U pipfez o truque.
MikeiLL
1
Para mim mais do que tudo; essa é a correção que funcionou para mim.
Hamid
Funciona como um encanto!
Cientista com falha
33

Ou você pode remover tudo requests.

Por exemplo:

  • rm -rf /usr/local/lib/python2.7/dist-packages/requests*
Marius Stanca
fonte
Isso funcionou para mim. Posso saber qual é a relação dos pedidos de instalação de python-pip
Roselyn Verbo Domingo
Se você olhar para o requestsmódulo, verá que este módulo / lib é usado para enviar solicitações HTTP. pipmodule precisa do requestsmódulo para baixar pacotes de ` . And the Pedidos do Python Package Index` removidos por você e tem outra versão que piprequer instalação.
Marius Stanca
Isso funcionou para mim também; Corri o erro ao executar um manual do Ansible que usava o pipmódulo para instalar dependências em uma instalação nova / nova do Raspbian Jessie (para Raspberry Pi). Depois de excluir o pacote dist dos pedidos, tudo funciona muito bem.
precisa saber é o seguinte
Trabalhou para mim também. Atualizei meu sistema operacional de wheezy para jessie, então pode ter quebrado alguma coisa. Os três métodos mencionados acima não funcionaram para mim primeiro. No entanto, se eu usei o método 3 e, em seguida, o comando rm -rf, achei que funcionava.
Eamonn Kenny
isto fez o trabalho, mantendo o pip do repositório debian. Muito obrigado!
Stefan
23

No Ubuntu 14.04, resolvi isso usando o script de inicialização da instalação do pip, conforme descrito na documentação

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

Essa é uma solução OK para um ambiente de desenvolvimento.

robert_b_clarke
fonte
Isso resolve o problema. Pena que esse problema ainda esteja aberto na versão LTS.
ganesshkumar
Eu tive esse problema no Ubuntu 15 e parece estar funcionando. O script get-pip.py disse que eu já tinha o pacote que estava procurando, mas sugeriu o uso do sudo com o sinalizador -H que acredito estar funcionando.
21816 Rick Henderson
17

O problema é o módulo Python requests. Pode ser corrigido por

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

Se você tiver esse problema com o Python 3, precisará escrever em python3vez de python.

Martin Thoma
fonte
4
É absolutamente uma ótima solução.
Tinker Sun
8
Legal para saber purge. Isso ainda não instalou uma versão funcional do pip e quando tentei executar from requests.compat import IncompleteReadna CLI python, deu o mesmo erro. O que deu certo, depois de executar os comandos acima, estava correndoeasy_install -U pip
MikeiLL
Esta é a melhor solução que não envolve o easy_install e não funciona com o sistema removendo o pip primeiro.
Marc Tamsky
9

Isso deve funcionar para você. Siga estes passos simples.

Primeiro, vamos remover o pip que já está instalado para não causar nenhum erro.

Terminal aberto.

Digite: sudo apt-get remove python-pip

Ele remove o pip que já está instalado.

Método 1

Etapa: 1 sudo easy_install -U pip

Ele instalará a versão mais recente do pip.

E retornará seu endereço: Instalado /usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

ou

Método-2

Etapa: 1 vá para este link .

Etapa: 2 Clique com o botão direito >> Salvar como .. com o nome get-pip.py.

Etapa: 3 use: cd para ir para o mesmo diretório que o seu arquivo get-pip.py

Etapa: 4 use: sudo python get-pip.py

Ele instalará a versão mais recente do pip.

ou

Método-3

Etapa: 1 use: sudo apt-get install python-pip

Ele instalará a versão mais recente do pip.

kiok46
fonte
Você poderia adicionar um pouco mais de detalhes à sua resposta?
precisa saber é o seguinte
Certo. Mas onde você ficou confuso?
precisa saber é o seguinte
Obrigado, removi o python-pip e usei o easy_install. O pip está funcionando novamente.
Phansen
@phansen nenhum problema (y)
kiok46
8

A simples execução easy_install -U pipresolveu o meu problema.

forzagreen
fonte
2
Comentando antigamente para expressar minha surpresa, eu tive que percorrer um grupo de pessoas para obter vários softwares apenas para encontrar essa solução muito simples e útil. Não sei ao certo quais eram as limitações quando a pergunta foi feita, mas isso funcionou .
Mttpgn
5

Verifique o tempo que você tem uma versão antiga do requestssentado em seu ~/.local/lib/python2.7/site-packages/e removê-lo se for o caso (trajeto de mudança para refletir a sua versão python). Isso resolveu o problema para mim.

ggll
fonte
5

Minha versão do pip no ubuntu sugere:

  pip install --upgrade pip
PhoebeB
fonte
4
Não funcionou para mim, pois o pip está totalmente borked por esse erro. Qualquer uso (mesmo pip --version) exibe o cannot import name IncompleteReaderro, por isso pip é infelizmente incapaz de atualizar-se
Abe Voelker
Na verdade, isso funciona em uma instalação limpa do Ubuntu 14.04 (bootstrap from minbase). De alguma forma, pipconsegue se atualizar sem consultar o requestsmódulo.
ony
Isso não funcionará com um pip quebrado - um dilema de galinha ou ovo.
Arnie97 04/04/19
4

No Windows, isso funcionou em um prompt administrativo:

  • Excluir C:\Python27\Lib\site-packages\requests*
  • easy_install requests==2.3
  • pip install --upgrade pip
  • pip install --upgrade requests
Jim Hunziker
fonte
Instalado / reinstalado python-requestse python3-requestsqual pip3 fixo. Cometera o erro de instalar python3.6beta e python3.6rc.
noobninja
3

Eu tentei com todas as respostas avobe, mas não consegui.

Fiz isso e funcionou

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

Depois disso, instalei o virtualenv com pip

sudo pip install virtualenv

Criei o virtualenv em que estava trabalhando e o pacote foi instalado facilmente. Entre no virtualenv usando source /bin/activate e tente instalar seu pacote, por exemplo:

pip install terminado

Funcionou para mim, embora eu estivesse usando python2.7 e não python3

Bruno O. Sánchez
fonte
0

Verifique se tem um intérprete python ativo em qualquer uma das janelas do terminal. Se assim for, mate-o e tente o sudo pipque funcionou para mim.

samsamara
fonte
0
  1. sudo apt-get remove python-pip
  2. pedidos sudo easy_install == 2.3.0
  3. O sudo apt-get instala o python-pip
Urso de pelúcia
fonte
0

Para o CentOS eu usei isso e funcionou, use os seguintes comandos:

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

(confirme se todas essas bibliotecas foram removidas)

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