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

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.

rdemarqui
источник
6

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

python -m pip install pip==19.0.3

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

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

mudit
источник
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.

Ashkan
источник
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

Михал Силвестер
источник