Mere
Fejl efter opgradering af pip: kan ikke importere navnet 'main'
Når jeg forsøger at installere en pakke ved hjælp af pip, får jeg denne importfejl:
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())
Det fungerede fint tidligere, jeg er ikke sikker på, hvorfor det smider denne fejl. Jeg har søgt om denne fejl, men kan ikke finde noget til at rette den.
Lad mig vide, hvis du har brug for yderligere detaljer, jeg vil opdatere mit spørgsmål.
443
3
Du må have opgraderet dit system pip utilsigtet (sandsynligvis gennem noget som
sudo pip install pip --upgrade
)pip 10.x justerer, hvor dets interne elementer er placeret. Den
pip3
-kommando du ser er en der leveres af din pakkevedligeholder (formentlig debian-baseret her?) og er ikke en fil der administreres af pip.Du kan læse mere om dette på [pip's issue tracker] (https://github.com/pypa/pip/issues/5221)
You'll sandsynligvis ønsker at ikke opgradere dit system pip og i stedet bruge en virtualenv.
For at gendanne den binære
pip3
skal dusudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Hvis du ønsker at fortsætte i "unsupported territory" (opgradering af en systempakke uden for systemets pakkehåndtering), kan du sandsynligvis slippe af sted med
python3 -m pip ...
i stedet forpip3
.Kontroller, om pip er blevet cachet på en anden sti, for at gøre det, kald $ which pip og kontroller, at stien er forskellig fra den, der er angivet i fejlen, hvis det er tilfældet, så kør:
Når cachen er ryddet, vil pip fungere igen. reference: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Jeg bruger
sudo apt remove python3-pip
og så virkerpip
.