Utiliser python -m pip install
au lieu depip install
Exemple:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
J'ai commencé à avoir ce problème après une pip
mise à niveau:
pip install --upgrade --user pip
L' exécutable pip
(resp. pip3
) Est fourni par votre distribution ( python-pip
package sur Ubuntu 16.04).
Par conséquent, il n'est pas mis à jour avec le pip
package lui-même lors de la mise à niveau de pip et peut se casser.
Si vous utilisez simplement python -m pip
directement, par exemple comme dans:
python -m pip install --user somepackage
python3 -m pip install --user somepackage
il passe par votre chemin Python et trouve la dernière version de pip, et exécute ce fichier.
Il repose sur le fait que ce fichier est exécutable, mais il s'agit d'un type d'interface très standard, et donc moins susceptible de se casser que le script Debian plus pirate.
Ensuite, je recommande d'ajouter les alias suivants à votre .bashrc
:
pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )
Le /usr/bin/pip3
fichier Ubuntu 18.04 fait:
from pip import main
et a probablement main
été retiré pip
à un moment donné qui est ce qui a brisé les choses.
La rupture de la validation pip semble être: 95bcf8c5f6394298035a7332c441868f3b0169f4 "Déplacer toutes les API internes vers pip._internal" qui est entré dans pip 18.0.
Testé dans Ubuntu 16.04 après une mise à jour de pip3
9.0.1 à 18.0.
pyenv
En fin de compte, cependant, pour un développement Python sérieux, je recommanderais simplement d'installer votre propre Python local avec pyenv + virtualenv, qui contournerait également ce bogue Ubuntu: Comment installer une version Python différente en utilisant apt-get?