Détails
Erreur après la mise à jour de pip : cannot import name 'main' ;
Chaque fois que j'essaie d'installer un paquet en utilisant pip, j'obtiens cette erreur d'importation :
guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN
import sys
# 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.
from pip import main
if __name__ == '__main__':
sys.exit(main())
Il fonctionnait bien avant, je ne sais pas pourquoi il affiche cette erreur. J'ai fait des recherches sur cette erreur, mais je n'ai rien trouvé pour la corriger.
Veuillez me faire savoir si vous avez besoin de plus de détails, je mettrai ma question à jour.
443
3
Vous devez avoir mis à jour par inadvertance votre système pip (probablement par quelque chose comme
sudo pip install pip --upgrade
)pip 10.x a modifié l'emplacement de ses composants internes. La commande
pip3
que vous voyez est une commande fournie par votre mainteneur de paquet (probablement basé sur debian ici ?) et n'est pas un fichier géré par pip.Vous pouvez en savoir plus à ce sujet sur [pip's issue tracker] (https://github.com/pypa/pip/issues/5221).
Vous voudrez probablement ne pas mettre à jour votre système pip et utiliser un virtualenv à la place.
Pour récupérer le binaire
pip3
, vous devrezsudo python3 -m pip uninstall pip && ; sudo apt install python3-pip --reinstall
.Si vous voulez continuer sur un territoire non supporté (mettre à jour un paquet système en dehors du gestionnaire de paquets système), vous pouvez probablement vous en sortir avec
python3 -m pip ...
au lieu depip3
.Vérifiez si pip a été mis en cache sur un autre chemin, pour ce faire, appelez $ which pip et vérifiez que le chemin est différent de celui indiqué dans l'erreur, si c'est le cas exécutez :
Lorsque le cache sera vidé, pip fonctionnera à nouveau. référence : http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
J'utilise
sudo apt remove python3-pip
puispip
fonctionne.