Hinweis des Betreuers: Jeder, der dieses Problem immer noch hat, siehe #5599.
Umfeld
sas@sas-linuxmint /usr/bin $ pip3 install --user --upgrade pip
Collecting pip
Using cached https://files.pythonhosted.org/packages/0f/74/ecd13431bcc456ed390b44c8a6e917c1820365cbebcb6a8974d1cd045ab4/pip-10.0.1-py2.py3-none-any.whl
Installing collected packages: pip
Successfully installed pip-8.1.1
You are using pip version 8.1.1, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
ImportError: cannot import name 'main'
sas@sas-linuxmint /usr/bin $ pip3 install --upgrade pip
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
Gleicher Fehler
gleicher Fehler
Dies ist das gleiche wie #5221.
@pradyunsg Warum markieren Sie dies als Duplikat eines geschlossenen Problems? Es ist eindeutig nicht geschlossen, wenn es immer noch ein Problem ist ...
@sydanny : https://github.com/pypa/pip/issues/5221#issuecomment -382069604
In diesem Fall scheint das besondere Problem zu sein:
pip3 install --user --upgrade pip
installiert pip 10 auf der Benutzer-Site, deinstalliert jedoch nicht die System-Site-Kopie von pip./usr/bin/pip3
aus, der aus dem vom Betriebssystem bereitgestellten pip 8 stammt. Dieser Wrapper erwartet, pip 8 zu sehen, aber dies ist nicht der Fall, da die Benutzer-Site Vorrang vor der System-Site hat.Die Lösung besteht darin, den Pip-Wrapper zu verwenden, der installiert wurde, als Sie pip 10 in --user
installiert haben. Das bedeutet, dass Sie Ihren PATH ändern müssen, um diesen an erster Stelle zu setzen, oder einen expliziten Pfad verwenden, wenn Sie pip aufrufen.
Technisch gesehen unterscheidet sich das Problem hier geringfügig von #5221, da die Benutzer in diesem Problem den System-Pip überschrieben haben. Aber die Grundursache ist die gleiche - Verwendung eines älteren Pip-Wrappers (vom Betriebssystem bereitgestellt) gegen eine neuere Version von pip. Dies ist kein unterstütztes Szenario, und Sie können es mit der korrekten Verwendung von pip nicht erreichen. Es gibt also kein Pip-Problem, daher schließen wir die Probleme, wenn sie auftreten. Wir verweisen die Benutzer auf Nr. 5221, weil dort der Großteil der Ratschläge zum Aufräumen Ihres Systems nach einem falschen Upgrade zu finden ist.
https://github.com/pypa/pip/issues/5221#issuecomment -381568428 hat bei mir funktioniert
thang@cq-gpu :/mnt/tmp/tqdscripts/azure/nvtf$ pip3 install --user --upgrade pip
Traceback (letzter Anruf zuletzt):
Datei "/usr/bin/pip3", Zeile 9, in
von pip import main
ImportError: Name 'main' kann nicht importiert werden
Das bringt mir nichts. Immer noch das gleiche Problem.
Bitte werfen Sie einen Blick auf #5599 und die dort verlinkten Probleme.
hash -d pip
hat bei mir funktioniert
Ich habe Pip deinstalliert und neu installiert. scheint zu funktionieren.
Ich hatte das gleiche Problem, aber deinstallieren und neu installieren mit apt und pip hat bei mir nicht funktioniert.
Ich habe eine andere Lösung für Stackoverflow gesehen , die eine einfache Möglichkeit bietet, den pip3-Pfad wiederherzustellen:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
Hallo, Kameraden! Ich habe das gleiche Problem und habe es gelöst. Hier ist meine Lösung.
Zuerst, wenn ich pip install etwas ausführe, kam der Fehler wie folgt:
`Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
`
Also cd in die Datei /usr/bin/ und cat pip3, um den Code darin zu sehen. Ich sehe das darin:
`#!/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())
`
Und dann denke ich, dass es nicht im Installationspfad lag. Also CD in den Python3-Pip, wie folgt:
cd /.local/lib/python3.5/site-packages/pip
ps: Sie müssen in Ihrem Computer in die richtigen Richtungen cdieren
Dann katalogisiere ich die Datei, um die Unterschiede zu sehen (Sie können andere Operationen verwenden, um den Code anzuzeigen):
cat __main__.py
Und ich habe das gesehen:
`from __future__ import absolute_import
import os
import sys
# If we are running from a wheel, add the wheel to sys.path
# This allows the usage python pip-*.whl/pip install pip-*.whl
if __package__ == '':
# __file__ is pip-*.whl/pip/__main__.py
# first dirname call strips of '/__main__.py', second strips off '/pip'
# Resulting path is the name of the wheel itself
# Add that to sys.path so we can import pip
path = os.path.dirname(os.path.dirname(__file__))
sys.path.insert(0, path)
from pip._internal import main as _main # isort:skip # noqa
if __name__ == '__main__':
sys.exit(_main())
`
Kannst du also den Unterschied sehen? Ich kann herausfinden, dass ich die Datei mit der Datei in /usr/bin/pip3 identisch machen muss
Also habe ich den Code in /.local/lib/python3.5/site-packages/pip kopiert, um den Code in /usr/bin/pip3 zu ersetzen
und das Problem verschwindet!
ps: pip3 oder pip haben bei diesem Problem keinen Unterschied.
Ich freue mich, wenn meine Lösung Ihr Problem löst!
Verwenden Sie pip3 :+1:
du solltest es versuchen
python3 -m pip install --user "Paketname"
@linpanusst ist richtig
sudo ln -sf $( type -P pip ) /usr/bin/pip
Das gleiche Problem besteht hier weiterhin. Deepin-Betriebssystem, 15.7. Das Interessante daran ist, dass es als normaler Benutzer fehlschlägt, aber mit sudo gut zu funktionieren scheint:
$ pip3 search audioshare
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
$ sudo pip3 search librosa
librosa (0.6.2) - Python module for audio and music processing
Die vorgeschlagene Problemumgehung sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
hat keinen Unterschied gemacht.
Eine auf stackoverflow veröffentlichte /usr/bin/pip3
dem normalen Benutzer hilft, aber sudo
bricht:
$ sudo pip3 search librosa
Traceback (most recent call last):
File "/usr/bin/pip3", line 13, in <module>
sys.exit(__main__._main())
AttributeError: module 'pip.__main__' has no attribute '_main'
Bitte werfen Sie einen Blick auf #5599 und die dort verlinkten Probleme.
Hilfreichster Kommentar
hash -d pip
hat bei mir funktioniert