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.
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 devrez sudo 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 de pip3
.
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 :
$ hash -r
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
puis pip
fonctionne.
~ sudo pip install pip --upgrade
[sudo] password for sen:
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
➜ ~ sudo apt remove python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
➜ ~ pip
Usage:
pip <command> [options]