pip przestał działać po błędzie aktualizacji obiekt „moduł” nie jest wywoływalny

70

Po aktualizacji pip pip przestał działać całkowicie.

Z:\>pip install matplotlib
Traceback (most recent call last):
  File "c:\program files\python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "c:\program files\python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Program Files\Python37\Scripts\pip.exe\__main__.py", line 9, in <module>
TypeError: 'module' object is not callable

Proszę o pomoc?

Edycja: Pracuję na systemie Windows 10

Agustin
źródło
13
Czy możesz spróbować python -m pip install matplotlibzgłosić błąd?
han solo,
10
Przyzwyczaj się do używaniapython -m pip
han solo
3
Wydaje się, że jest problem z tym, że 19.3 nie działa po aktualizacji z 19.2.3
han solo
1
@AnnevanRossum Running python -m pipupewnij się, że pipwywołane jest zawsze powiązane z pythonTwoim działaniem
Han Solo
2
@hansolo Musi się dziać coś jeszcze. W moim systemie pipzawodzi, a się to python -m pipudaje. Jest to system z wieloma pythonami (i pip3odnosi sukcesy również python3 -m pip). Zastanawiałem się, czy pipużyto go takim, jakim jest, używa innego, PYTHONPATHczy robi coś innego.
Anne van Rossum

Odpowiedzi:

81

Podziękowania należą się użytkownikowi han_solo , który zostawił odpowiedź jako komentarz, a nie jako odpowiedź:

Zamiast pip install stdlib_list --user

posługiwać się python -m pip install stdlib_list --user

Wymienić stdlib_listz matplotliblub bez względu na to nazwa pakietu, który chcesz.

Zawilec wykałaczki
źródło
20
Dlaczego to się dzieje?
darkgaze
1
Sprawiłeś,
1
fuj. ale przynajmniej możesz ustawić alias alias pip="python -m pip"(lub alias pip="python3 -m pip"). dodaj to do ~ / .bash_aliases lub do pliku rc powłoki
fbas
użyj python3 -m pip install stdlib_list --userdla python3. nazwa modułu jest nadal pipw tym przypadku.
smcg
1
czy wiesz jak wykonać powyższe polecenie w kodzie python
Mamen
14

Miałem ten sam problem co ty i rozwiązałem go odinstalowując pip i instalując ponownie.

Aby odinstalować: python -m pip odinstaluj pip

Aby zainstalować, postępuj zgodnie z instrukcjami: https://www.liquidweb.com/kb/install-pip-windows/

Następnie będziesz mieć starszą, ale funkcjonalną wersję 19.0.3.

rdemarqui
źródło
6

Jeśli nie chcesz używać długiego polecenia za każdym razem python -m pip install <package>, zainstaluj ponownie pip do starszej wersji, w której nie ma tego błędu.

python -m pip install pip==19.0.3

Teraz będziesz mógł używać pip install matplotliblub pip listnormalnie.

A gdy błąd zostanie rozwiązany, zaktualizuj pip tak jak wcześniej.

mudit
źródło
4

To działało dla mnie, odinstaluj pip 19.3.1 i zamień na 19.0.3, błąd zniknął.

python -m pip install pip==19.0.3 --user
Camilo Caquimbo
źródło
2

Miej zwyczaj instalowania dowolnych pakietów Pythona za pomocą pip za pomocą python -m , powiedzmy do instalowania numpy użyj poniższego polecenia:

python -m pip install numpy

W przypadku, gdy wystąpi błąd z błędem uprawnień środowiska, dodaj --user w tym samym poleceniu:

python -m pip install numpy --user

Piyush Upadhyay
źródło
1

Podobne do tego, co powiedział @han_solo, ale jeśli działasz Python3, zamiast używać:

python -m pip install stdlib_list --user

spróbuj użyć:

python3 -m pip install stdlib_list --user

Alden DelVecchio
źródło
3
Alden, Raczej następnym razem po prostu edytuj istniejącą odpowiedź i dodaj python3 -m pip install stdlib_list --userzamiast zupełnie nowej odpowiedzi tylko po to, aby dodać numer
Phillip Jacobs
0

Miałem ten sam problem z wersją h5py-2.7.1, a ostrzeżenia zniknęły po aktualizacji do wersji h5py-2.10.0.

Ashkan
źródło
0

Nie mogę jeszcze zostawić komentarzy, dlatego postanowiłem zostawić link z wyjaśnieniem, dlaczego tak się dzieje: https://github.com/pypa/pip/issues/5599

W takim przypadku możesz spróbować to naprawić, obniżając wersję pip za pomocą następującego polecenia:

 python -m pip install pip==<previous version>
Dmitry Amelin
źródło
-1

Miałem ten sam problem. Udało mi się to naprawić, ponownie instalując pip w miejscu, używając kombinacji innych odpowiedzi:

python -m pip install -U --force-reinstall pip

Michał Sylwester
źródło