Пип больше не работает после ошибки обновления «модуль» объект не вызывается


70

После обновления pip pip перестал работать полностью.

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

Любая помощь, пожалуйста?

Редактировать: я работаю на Windows 10


13
Не могли бы вы попытаться python -m pip install matplotlibсообщить об ошибке?
Хан соло

10
Сделайте привычку использоватьpython -m pip
хан соло

3
Кажется, есть проблема, связанная с тем, что этот 19.3 не работает после обновления с 19.2.3
хан соло

1
@AnnevanRossum Running python -m pipубедитесь, что pipвызванный всегда связан с тем, с python
хан соло

2
@hansolo Должно быть, что-то еще происходит. На моей системе происходит pipсбой, а все python -m pipполучается. Это многопитонная система (и pip3так же успешная python3 -m pip). Мне было интересно, если pipон использовался как есть, он использует другое PYTHONPATHили делает что-то другое.
Энн ван Россум

Ответы:


81

Вся заслуга в этом принадлежит пользователю han_solo , который оставил ответ как комментарий, а не как ответ:

Вместо pip install stdlib_list --user

использование python -m pip install stdlib_list --user

замещать stdlib_list с matplotlibили независимо от того имени пакета , который вы хотите.


20
Почему это происходит?
даркгаз

1
Ты сделал мой день :)
Врушабх Сучак

1
Тьфу. но по крайней мере вы можете установить псевдоним alias pip="python -m pip"(или alias pip="python3 -m pip"). добавьте это в ~ / .bash_aliases или в свой rc-файл оболочки
fbas

использовать python3 -m pip install stdlib_list --userдля python3. Имя модуля все еще pipдля этого случая.
smcg

1
Вы знаете, как выполнить вышеуказанную команду в коде Python
Мамен

14

У меня была та же проблема, что и у вас, и я решил ее, удалив pip и установив заново.

Чтобы удалить: python -m pip uninstall pip

Для установки следуйте инструкциям: https://www.liquidweb.com/kb/install-pip-windows/

После этого у вас будет более старая, но функциональная версия 19.0.3.


6

Если вы не хотите использовать команду long каждый раз python -m pip install <package>, переустановите pip на более старую версию, где этой ошибки не было.

python -m pip install pip==19.0.3

Теперь вы сможете использовать pip install matplotlibили pip listнормально.

И всякий раз, когда ошибка устранена, обновите пункт, как вы делали раньше.


4

Это сработало для меня, удалите пип 19.3.1 и замените на 19.0.3, ошибка исчезла.

python -m pip install pip==19.0.3 --user

2

У вас есть привычка устанавливать любые пакеты Python с помощью pip, используя python -m , например, для установки numpy используйте следующую команду:

python -m pip установить numpy

В случае ошибки из-за ошибки разрешения среды добавьте --user в ту же команду:

python -m pip установить numpy --user


1

Похоже на то, что сказал @han_solo, но если вы используете python3, вместо использования:

python -m pip install stdlib_list --user

попробуйте использовать:

python3 -m pip install stdlib_list --user


3
Олден, Скорее в следующий раз просто отредактируйте существующий ответ и добавьте python3 -m pip install stdlib_list --userвместо того, чтобы получить новый, просто добавьте число
Филипп Джейкобс

0

У меня была такая же проблема с h5py-2.7.1, и предупреждения исчезли после обновления до h5py-2.10.0.


0

Я пока не могу оставлять комментарии, поэтому решил оставить ссылку с объяснением, почему это может произойти: https://github.com/pypa/pip/issues/5599

В этом случае вы можете попытаться исправить это, понизив версию pip с помощью следующей команды:

 python -m pip install pip==<previous version>

-1

Была такая же проблема. Мне удалось это исправить, переустановив pip на месте, используя комбинацию других ответов:

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.