Meer
Fout na het upgraden van pip: kan naam 'main'. niet importeren;
Telkens als ik een pakket probeer te installeren met pip, krijg ik deze importfout:
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())
Het werkte eerder goed, ik weet niet zeker waarom het nu deze fout geeft. Ik heb gezocht naar deze fout, maar kan niets vinden om het op te lossen.
Laat het me weten als je meer details nodig hebt, ik zal mijn vraag bijwerken.
443
3
Je moet per ongeluk je systeem pip ge-upgrade hebben (waarschijnlijk door iets als
sudo pip install pip --upgrade
)pip 10.x past aan waar zijn internals zich bevinden. Het
pip3
commando dat je ziet is er een geleverd door je pakketbeheerder (vermoedelijk debian gebaseerd hier?) en is geen bestand beheerd door pip.Je kan hier meer over lezen op pip's issue tracker
Je'zult waarschijnlijk je systeem pip niet willen upgraden en in plaats daarvan een virtualenv gebruiken.
Om de
pip3
binary terug te krijgen moet jesudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Als je verder wilt gaan in "unsupported territory" (het upgraden van een systeem pakket buiten de systeem package manager om), kun je waarschijnlijk wegkomen met
python3 -m pip ...
in plaats vanpip3
.Controleer of pip gecached is op een ander pad, om dit te doen, roep $ which pip aan en controleer of het pad verschillend is van het pad in de foutmelding, als dat'het geval is, voer uit:
Wanneer de cache leeg is, zal pip weer werken. referentie: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Ik gebruik
sudo apt remove python3-pip
dan werktpip
.