Viac na
Chyba po aktualizácii pip: nemožno importovať názov 'main'
Vždy, keď sa pokúšam nainštalovať akýkoľvek balík pomocou pipu, dostanem túto chybu importu:
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())
Predtým to fungovalo dobre, nie som si istý, prečo to hádže túto chybu. Hľadal som o tejto chybe, ale nemôžem'nájsť nič, čo by ju opravilo.
Ak potrebujete ďalšie podrobnosti, dajte mi prosím vedieť, aktualizujem svoju otázku.
443
3
Museli ste neúmyselne aktualizovať systém pip (pravdepodobne cez niečo ako
sudo pip install pip --upgrade
)pip 10.x upravuje umiestnenie svojich vnútorných komponentov. Príkaz
pip3
, ktorý vidíte, je príkaz poskytnutý správcom vášho balíka (pravdepodobne tu je založený na debiane?) a nie je to súbor spravovaný pipom.Viac sa o tom dočítate na pip's issue tracker
Pravdepodobne budete chcieť neaktualizovať svoj systém pip a namiesto toho použiť virtualenv.
Ak chcete obnoviť binárny súbor
pip3
, budete musieťsudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Ak chcete pokračovať na "nepodporovanom území" (aktualizácia systémového balíka mimo systémového správcu balíkov), pravdepodobne si vystačíte s
python3 -m pip ...
namiestopip3
.Skontrolujte, či bol pip uložený do vyrovnávacej pamäte na inej ceste, zavolajte $ which pip a skontrolujte, či sa cesta líši od cesty, ktorá bola uvedená v chybe, ak je to tak, spustite:
Po vymazaní vyrovnávacej pamäte bude pip opäť fungovať. odkaz: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Používam
sudo apt remove python3-pip
a potompip
funguje.