Fehler nach Upgrade von pip: kann den Namen 'main' nicht importieren;
Immer wenn ich versuche, ein Paket mit pip zu installieren, erhalte ich diesen Importfehler:
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())
Es hat vorher gut funktioniert, ich bin mir nicht sicher, warum es diesen Fehler auslöst. Ich habe über diesen Fehler recherchiert, kann aber nichts finden, um ihn zu beheben.
Bitte lassen Sie mich wissen, wenn Sie weitere Details benötigen, ich werde meine Frage aktualisieren.
443
3
Sie müssen versehentlich Ihr System pip aktualisiert haben (wahrscheinlich durch etwas wie
sudo pip install pip --upgrade
)pip 10.x passt an, wo sich seine Interna befinden. Der
pip3
-Befehl, den Sie sehen, wird von Ihrem Paketbetreuer zur Verfügung gestellt (vermutlich basiert er auf Debian?) und ist keine von pip verwaltete Datei.Sie können mehr darüber auf pip's issue tracker lesen.
Wahrscheinlich sollten Sie Ihr System pip nicht aktualisieren und stattdessen eine virtualenv verwenden.
Um das
pip3
Binary wiederherzustellen, müssen Siesudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Wenn Sie sich weiterhin in "nicht unterstütztes Territorium" begeben wollen (Aktualisierung eines Systempakets außerhalb des System-Paketmanagers), können Sie wahrscheinlich mit
python3 -m pip ...
anstelle vonpip3
auskommen.Prüfen Sie, ob pip auf einem anderen Pfad zwischengespeichert wurde. Rufen Sie dazu $ which pip auf und prüfen Sie, ob sich der Pfad von dem in der Fehlermeldung angegebenen unterscheidet, falls dies der Fall ist, führen Sie aus:
Wenn der Cache geleert ist, wird pip wieder funktionieren. Referenz: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Ich benutze
sudo apt remove python3-pip
dann funktioniertpip
.