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  

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

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)


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.

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

0

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


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.