Quero instalar o Scipy (o Numpy já está instalado). Eu tenho o Python 3.5.1-3 instalado com o sistema operacional e o IDLE3 (3.5.2). Quando eu bati no terminal
sudo pip3 install scipy
Imprime
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
Eu já tentei reinstalar o pip3 e reiniciar o sistema operacional, mas não mudou. O pip3 tem trabalhado estranhamente com outra pessoa?
Use em
python -m pip install
vez depip install
Exemplo:
Comecei a obter esse problema após uma
pip
atualização:O executável
pip
(resp.pip3
) É fornecido pela sua distribuição (python-pip
pacote no Ubuntu 16.04).Portanto, ele não é mantido atualizado com o
pip
próprio pacote à medida que você atualiza o pip e pode quebrar.Se você apenas usar
python -m pip
diretamente, por exemplo, como em:ele percorre o caminho do Python e encontra a versão mais recente do pip e executa esse arquivo.
Ele se baseia no fato de que esse arquivo é executável, mas esse é um tipo de interface muito padrão e, portanto, menos provável de quebrar do que o script Debian mais hackier.
Então, recomendo adicionar os seguintes aliases ao seu
.bashrc
:O
/usr/bin/pip3
arquivo Ubuntu 18.04 faz:e, presumivelmente,
main
foi removido depip
algum ponto que foi o que quebrou as coisas.A confirmação do pip de interrupção parece ser: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Mova todas as APIs internas para pip._internal", que foi introduzido no pip 18.0.
Testado no Ubuntu 16.04 após uma atualização de
pip3
9.0.1 para 18.0.pyenv
No final das contas, no entanto, para desenvolvimento sério do Python, eu recomendaria apenas que você instale o seu próprio Python local com pyenv + virtualenv, que também contornaria esse bug do Ubuntu: Como instalar uma versão diferente do Python usando o apt-get?
fonte
/usr/bin/pip
é fornecido por um pacote Ubuntu Python epip
não o substitui. Mas elepip update
é gerenciado porpip
si só e evita tocar nos arquivos do Ubuntu.Debian
--O comentário diz:Run the main entry point, similarly to how setuptools does it, but because we didn't install the actual entry point from setup.py, don't use the pkg_resources API.
Talvez haja uma maneira de instalar o Python corretamente de maneira python./usr/bin/pip
faz :-)O bug é encontrado no pip 10.0.0.
No linux, você precisa modificar o arquivo: / usr / bin / pip de:
para isso:
fonte
pip
equipe.Eu tive o mesmo problema, mas desinstale e reinstale com o apt e o pip não funcionou para mim.
Eu vi outra solução que apresenta uma maneira fácil de recuperar o caminho do pip3:
fonte
Embora karel possa ter resolvido o problema "instalar numpy e scipy", o que há de errado com o pip no seu sistema não foi solucionado, então você provavelmente terá mais problemas com o pip daqui para frente.
Olhando aqui , parece ser um problema recente bastante comum com o pip 10 nos sistemas Ubuntu. Você pode encontrar algumas soluções alternativas nesse segmento que funcionem para você, mas espero que uma atualização o corrija em breve.
fonte
A instalação do pip do apt e do próprio pip pode causar isso.
No meu caso, usei o pacote pip do Ubuntu para instalar o pipenv, que instalou uma cópia mais recente do pip. Agora, porque meu shell executa o script pip 9 do Ubuntu (para verificar a execução
which pip3
) e meu interpretador Python importa o módulo pip 10, o comando pip3 falha. Então, eu quero desinstalar um dos dois.É justo supor que você tenha o pip mais novo por um motivo. Nesse caso, você deseja desinstalar o pip antigo da seguinte maneira:
sudo apt remove python3-pip
Se você tem certeza de que está bem com o pip mais antigo e prefere o pacote do sistema, desinstale o mais novo:
~/.local/bin/pip3 uninstall pip
ou na sua falta
sudo /usr/local/bin/pip3 uninstall pip
fonte
tipo
Isso deve remover este erro
fonte
Forçar a reinstalação do pip funciona bem para a maioria dos usuários, como mostrado nesta página do github:
fonte
Meu problema acabou sendo uma incompatibilidade entre python3.6 e 3.7. A instalação do python3.6 colocou um link,
/usr/bin/python3 -> /usr/bin/python3.6
mesmo que o sistema tenha sido atualizado para python3.7.fonte
Isso funcionou para mim:
Por
install --upgrade
, quero dizer o que você está tentando instalar.fonte