Usa python -m pip install
invece dipip install
Esempio:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
Ho iniziato a ricevere questo problema dopo un pip
aggiornamento:
pip install --upgrade --user pip
L' eseguibile pip
(resp. pip3
) È fornito dalla tua distribuzione ( python-pip
pacchetto su Ubuntu 16.04).
Pertanto, non viene aggiornato con il pip
pacchetto stesso durante l'aggiornamento del pip e potrebbe non funzionare.
Se lo usi python -m pip
direttamente, ad es. Come in:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
passa attraverso il tuo percorso Python e trova l'ultima versione di pip ed esegue quel file.
Si basa sul fatto che quel file è eseguibile, ma si tratta di un tipo di interfaccia molto standard, e quindi meno probabile che si rompa rispetto allo script hacker Debian.
Quindi ti consiglio di aggiungere i seguenti alias al tuo .bashrc
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
Il /usr/bin/pip3
file Ubuntu 18.04 fa:
from pip import main
e presumibilmente è main
stato rimosso da un pip
certo punto che è ciò che ha rotto le cose.
Il commit del pip interrotto sembra essere: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Sposta tutte le API interne in pip._internal" che è andato nel pip 18.0.
Testato in Ubuntu 16.04 dopo un aggiornamento dalla pip3
9.0.1 alla 18.0.
pyenv
In definitiva, tuttavia, per un serio sviluppo di Python, consiglierei semplicemente di installare il proprio Python locale con pyenv + virtualenv, che aggirerebbe anche questo bug di Ubuntu: Come posso installare una versione di Python diversa usando apt-get?