Use python -m pip install em vez de pip install
Exemplo:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
Eu comecei a receber esse problema depois de um pip upgrade:
pip install --upgrade --user pip
O executável pip (resp. pip3 ) é fornecido pela sua distro (pacote python-pip no Ubuntu 16.04).
Portanto, ele não é mantido atualizado com o pacote pip em si enquanto você atualiza o pip, e pode quebrar.
Se você acabou de usar python -m pip diretamente, por exemplo como em:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
ele passa pelo caminho do Python e localiza a versão mais recente do pip e executa esse arquivo.
Ele se baseia no fato de que esse arquivo é executável, mas é um tipo de interface muito padrão e, portanto, menos provável de quebrar do que o script Debian mais invasivo.
Então, eu recomendo adicionar os seguintes aliases ao seu .bashrc :
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
Testado no Ubuntu 16.04 após uma atualização de pip3 9.0.1 a 18.0.