pip3“ TypeError:'模块'对象不可调用”更新后


42

我是Python新手,我想在控制台中安装Jupyter Notebook,然后输入以下内容:

pip3 install --upgrade pip 

之后,我在使用pip3安装其他库时出错,控制台输出:

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

我不知道该怎么办。

我用完sudo autoremove python3-pip之后sudo apt install python3-pip


也许它导入了您的文件的一部分,而不是预期的模块,并且运行时遇到了问题-可以是。main.py。您是否尝试pip在其他文件夹中使用?
furas

1
我也有同样的错误。
希里亚尔

感谢您开始使用-我在stackoverflow.com/questions/34573159/…
jvonehr

Answers:


61

从Bram 的链接中,我刚刚运行python3 -m pip uninstall pip,它又开始起作用。


3
有人可以解释一下吗?
赛义夫·拉赫曼

5
@SaifUrRahman:从提供的链接来看,这似乎是用户特定的pip安装(由OPs命令安装/升级)与操作系统提供的全局pip安装之间的冲突。
vlz

5

适用于我的情况的解决方案只是在ubuntu环境中编辑pip3.8文件。

方法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())

方法2:

主要功能必须导入,否则我们可以简单地替换行

sys.exit(main())

sys.exit(main.main())

是!谢谢您的“方法1”!
Ryan Loggerythm

方法2像魅力一样起作用!谢谢!!!
David Aubin

谢谢!方法2对我有用。我对此感到紧张,因为恐怕下次我更新/Applications/Xcode.app/Contents/Developer/usr/bin/pip3时,它会失败。
Jetpack



1

在Windows中,编辑C:\ ProgramData \ Anaconda3 \ Scripts \ pip-script.py并替换

# -*- 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())

将最后一行替换为sys.exit(main.main())。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.