pip3 „TypeError: Obiekt„ module ”nie można wywołać” po aktualizacji


42

Jestem nowy w Pythonie, chcę zainstalować Notatnik Jupyter na mojej konsoli. Wprowadzam:

pip3 install --upgrade pip 

po tym mam błąd, aby użyć pip3 zainstalować inną bibliotekę, konsola wydrukuje:

File "/usr/bin/pip3", line 11, in <module>
    sys.exit(main())
TypeError: 'module' object is not callable

Nie wiem co mam zrobić.

Używam sudo autoremove python3-pippotem używamsudo apt install python3-pip


może zaimportuje część pliku zamiast oczekiwanego modułu i ma problem z uruchomieniem go - może to być np. main.py. Czy próbowałeś użyć pipw innym folderze?
furas

1
Miałem również ten sam błąd.
Hyrial

Dzięki za rozpoczęcie pracy - wymieniłem procedurę naprawy na stackoverflow.com/questions/34573159/...
jvonehr

Odpowiedzi:


61

Z linku autorstwa Brama właśnie pobiegłem python3 -m pip uninstall pipi znów zaczął działać.


3
Czy ktoś może to wyjaśnić?
Saif Ur Rahman,

5
@ SaifUrRahman: Z podanego łącza wydaje się, że jest to konflikt między instalacją pip specyficzną dla użytkownika (instalowaną / aktualizowaną przez polecenie OPs) a globalną instalacją pip dostarczaną przez system operacyjny.
vlz

5

Rozwiązaniem, które zadziałało w mojej sytuacji, jest po prostu edycja pliku pip3.8 w środowisku Ubuntu.

Metoda 1:

#!/path/to/.venv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys

from pip._internal.main import main  # <--- look at this import statement! 

if __name__ == '__main__':
     sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
     sys.exit(main())

metoda2:

Główna funkcja musi zostać zaimportowana lub możemy po prostu zastąpić linię

sys.exit(main())

Tak jak

sys.exit(main.main())

tak! dziękuję za „metodę nr 1”!
Ryan Loggerythm,

metoda nr 2 działała jak urok! Dzięki!!!
David Aubin,

Dzięki! metoda nr 2 zadziałała dla mnie. Denerwuję się tym, ponieważ obawiam się, że nie powiedzie się przy następnej aktualizacji /Applications/Xcode.app/Contents/Developer/usr/bin/pip3.
Jetpack


1

Jak widać tutaj , powinieneś być w stanie rozwiązać ten problem, uruchamiając moduł bezpośrednio z Pythona, tj

python -m pip install --upgrade pip

1

W systemie Windows edytuj C: \ ProgramData \ Anaconda3 \ Scripts \ pip-script.py i zamień

# -*- coding: utf-8 -*-
import re
import sys
from pip._internal import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
    sys.exit(main())

Zamień ostatni wiersz na sys.exit (main.main ()).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.