更新后pip无法正常工作,出现错误“module”对象不可调用。

77

进行了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操作系统。


14
请尝试运行命令 python -m pip install matplotlib,并将出现的错误报告回来。 - han solo
11
养成使用 python -m pip 的习惯。 - han solo
3
自从从19.2.3升级到19.3后,似乎存在问题。链接:https://github.com/pypa/pip/issues/7209 - han solo
3
使用 python -m pip 命令运行时,确保调用的 pip 与你正在运行的 python 相关联。 - han solo
2
@hansolo,可能还有其他问题。在我的系统上,pip 失败了,而 python -m pip 成功了。这是一个多 Python 系统(pip3python3 -m pip 也成功了)。我在想如果直接使用 pip,它是否使用了不同的 PYTHONPATH 或者做了其他不同的事情。 - Anne van Rossum
显示剩余4条评论
10个回答

92
这要归功于用户han_solo,他将答案作为评论而不是作为回答留下了:

python -m pip install stdlib_list --user替代pip install stdlib_list --user

stdlib_list替换为您想要的软件包名称,如 matplotlib


23
为什么会发生这种情况? - Darkgaze
1
呃,不过你可以设置一个别名alias pip="python -m pip"(或者alias pip="python3 -m pip")。将其添加到~/.bash_aliases或你的shell rc文件中。 - fbas
使用 python3 -m pip install stdlib_list --user 命令安装 python3 的 stdlib_list 模块,对于此情况,模块名称仍为 pip - smcg

15

我曾经遇到跟你一样的问题,解决方法是卸载 pip 并重新安装。

卸载命令如下: python -m pip uninstall pip

安装步骤请参考以下链接: https://www.liquidweb.com/kb/install-pip-windows/

这样做后,你会得到一个旧但可用的 19.0.3 版本。


6

如果你不想每次都使用长命令 python -m pip install <package>,可以将pip重新安装为旧版本,该版本中不存在此错误。

python -m pip install pip==19.0.3

现在您可以正常使用 pip install matplotlibpip list 命令。

当问题得到解决后,就像以前一样升级 pip。


5

这对我有用,卸载pip 19.3.1并替换为19.0.3,错误消失了。

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

2
与@han_solo所说的类似,但是如果你运行的是python3,不要使用:

python -m pip install stdlib_list --user

而是尝试使用:

python3 -m pip install stdlib_list --user


3
Alden,下次请直接编辑现有答案并添加 python3 -m pip install stdlib_list --user,而不是要新建一个完整的答案仅仅为了添加一个数字。 - PhillipJacobs

2

养成使用python -m安装任何Python软件包的习惯,例如安装numpy,请使用以下命令:

python -m pip install numpy

如果出现环境权限错误,请在相同命令后添加--user

python -m pip install numpy --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>

0

在一个情况下,从你的Python文件中进行以下编辑以进行导入

--import [MODULE]
++from [MODULE_NAME] import [MODULE]

-1

我曾经遇到过同样的问题。最终我通过重新安装pip并结合其他答案的方法解决了这个问题:

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接