Instalação do Python3 pip3 quebrada no Ubuntu

14

Eu instalei python3 e pip3 com sucesso no meu Ubuntu16.04, mas a instalação do pip3 está quebrada. Como posso resolver este problema? As informações de erro de pip3 installsão as seguintes:

# pip3 install xlwt
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Saída de sudo -H pip3 install --upgrade pip

sudo -H pip3 install --upgrade pip  
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
  from pip import main
File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
  from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

Saída de which pip3e pip3 --version:

# which pip3
/usr/bin/pip3

# pip3 --version
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 21, in <module>
    from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
ModuleNotFoundError: No module named 'pip._vendor.requests'

O pip do PS Python2 é executado com êxito. Saída de "what pip" e "pip --version":

# which pip
/usr/bin/pip

# pip --version
pip 1.5.4 from /usr/local/lib/python2.7/dist-packages/pip-1.5.4-py2.7.egg (python 2.7)

E informações de instalação do python e python3:

# which python
/usr/bin/python
# which python3
/usr/bin/python3

# python -V
Python 2.7.14
# python3 -V
Python 3.6.3  
mlpy
fonte
Você disse 16.04 na sua postagem, mas usou a tag 14.04. Qual versão está correta?
edwinksl
1
16.04 está correto. Não consegui encontrar a tag 16.04 agora. Desculpa.
mlpy

Respostas:

12

Há algo de errado com o seu pip3, remova-o e reinstale-o. Abra o terminal e digite:

sudo apt purge python3-pip  
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip   
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
python3 -m pip install --user xlwt
karel
fonte
3
Tentei, mas ainda assim, o mesmo erro: imgur.com/a/nAdqU .
mlpy
Eu tentei a nova solução, mas ainda o mesmo erro.
mlpy
Estou tendo o mesmo problema também. Quando eu faço sudo apt install python3-pip, eu recebo o seguinte erro:The following packages have unmet dependencies: python3-pip : Depends: python-pip-whl (= 8.1.1-2) but 8.1.1-2ubuntu0.4 is to be installed Recommends: build-essential but it is not going to be installed Recommends: python3-dev (>= 3.2) but it is not going to be installed Recommends: python3-wheel but it is not going to be installed E: Unable to correct problems, you have held broken packages.
Kristada673
@ Kristada673 Tente ler as respostas para esta pergunta: askubuntu.com/questions/363200/… . A resposta do DragonLord funcionou para mim.
22418
6

A instalação do pacote python3-pip cria um script python no arquivo / usr / bin / pip3. Para executar, a função main () precisa ser importada do módulo pip ( from pip import main). Este caminho do método está disponível apenas para a versão pip compactada (9.0.1 no meu caso).

Após a execução pip3 install --upgrade pip, a versão do pip passa a ser 18.1, e main () foi movido pip._internal.

Use o comando python3 -m pip --versionpara verificar se o seu caso corresponde à mesma situação (o pip3 também está disponível com esse método quando /usr/bin/pip3está quebrado).

Nesse caso, no arquivo / usr / bin / pip3, substitua a linha 9: from pip import main por: from pip._internal import main

O problema será corrigido. (Testado na distribuição Ubuntu 18.04)

Vincent H.
fonte
Depois que eu mudei a importação, um erro diferente apareceFile "/usr/bin/pip3", line 11, in <module> sys.exit(main()) TypeError: 'module' object is not callable
Miranda
2

Isto é o que eu achei útil:

  1. sudo rm -rf /usr/local/lib/python3.5/dist-packages
  2. Nunca corra para pip3dentro sudo.
Jan Lachnitt
fonte
Enquanto isso talvez conserte as coisas, você pode expandir sua resposta? Por que remover este diretório (talvez acrescentar uma ressalva sobre o python3.5caminho), por que não para executá-lo com sudo, e assim por diante ..
Robert Riedl
Não sou especialista nisso - só queria compartilhar o que havia funcionado para mim.
Jan Lachnitt
1

Primeiro exclua o pip3 corrompido:

rm /user/bin/pip3 /user/local/bin/pip3

Reinstale o novo:

sudo apt-get remove python3-pip
sudo apt-get install python3-pip
邹若奇
fonte
0

Tinha o mesmo problema, a instalação do openssl o corrigiu para mim

getupandgo
fonte
Mas o openssl já está instalado no meu Ubuntu: imgur.com/a/60kIM . Talvez seja causado por outro motivo.
mlpy
0

Como o @Vincent H. mencionou, encontrei o mesmo problema.

Traceback (última chamada mais recente): Arquivo "/home/ashish/.local/bin/pip3", linha 7, da pip._internal import main ImportError: Nenhum módulo chamado 'pip._internal'

A correção para o problema era substituir pip._internala pipnos .local/bin/pip3fazendo sudo gedit .local/bin/pip3.

O preguiçoso
fonte
0

Este é um problema, mas você pode resolver.

rm /user/bin/pip3 /user/local/bin/pip
sudo apt-get remove python-pip

do que reinstalar

sudo apt-get install python-pip
Olá
fonte