Use em python -m pip install
vez depip install
Exemplo:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
Comecei a obter esse problema após uma pip
atualização:
pip install --upgrade --user pip
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:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
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
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
O /usr/bin/pip3
arquivo Ubuntu 18.04 faz:
from pip import main
e, presumivelmente, main
foi removido de pip
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?