Więcej
Błąd po aktualizacji pip: nie można zaimportować nazwy 'main'
Ilekroć próbuję zainstalować dowolny pakiet za pomocą pip, otrzymuję ten błąd 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())
Wcześniej działało to dobrze, nie jestem pewien dlaczego wyrzuca ten błąd. Szukałem informacji o tym błędzie, ale nie mogę znaleźć niczego, co mogłoby go naprawić.
Proszę dać mi znać, jeśli potrzebujesz dalszych szczegółów, zaktualizuję moje pytanie.
443
3
Musiałeś nieumyślnie zaktualizować swój system pip (prawdopodobnie przez coś takiego jak
sudo pip install pip --upgrade
)pip 10.x dostosowuje się do tego, gdzie znajdują się jego elementy wewnętrzne. Polecenie
pip3
, które widzisz jest jednym z dostarczonych przez opiekuna pakietu (przypuszczalnie debian oparty tutaj?) i nie jest plikiem zarządzanym przez pip.Możesz przeczytać więcej na ten temat na pip's issue tracker
Prawdopodobnie będziesz chciał nie uaktualniać swojego systemowego pip i zamiast tego użyć virtualenv.
Aby odzyskać binarny
pip3
będziesz musiałsudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall
.Jeśli chcesz kontynuować na "nieobsługiwanym terytorium" (uaktualnianie pakietu systemowego poza systemowym menedżerem pakietów), prawdopodobnie możesz uciec z
python3 -m pip ...
zamiastpip3
.Sprawdź, czy pip został zbuforowany na innej ścieżce, w tym celu wywołaj $ which pip i sprawdź, czy ścieżka jest inna niż ta, która została podpowiedziana w błędzie, jeśli tak'e jest, uruchom program:
Gdy pamięć podręczna zostanie wyczyszczona, pip znów będzie działał. odnośnik: http://cheng.logdown.com/posts/2015/06/14/-usr-bin-pip-no-such-file-or-directory
Używam
sudo apt remove python3-pip
wtedypip
działa.