ImportError: cannot import name 'main' from 'pip'

在使用 pip3 install --upgrade pip 升级 pip3 之后,运行 pip3 发生如下报错:

1
2
3
4
5
@raspberrypi:~ $ pip3
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main' from 'pip' (/home/pi/.local/lib/python3.7/site-packages/pip/__init__.py)

报错的原因是 pip 升级后,main 函数发生了修改。因此根据报错提示,修改 /usr/bin/pip3 这个文件:

1
2
3
from pip import main    # 这是原先的语句
if __name__ == '__main__':
sys.exit(main())

修改为:

1
2
3
from pip._internal import main  # 修改后的语句
if __name__ == '__main__':
sys.exit(main())

如果在用 vim 修改文件的过程中,提示 readonly,可尝试使用 sudo 权限进行修改。

参考链接

[1] Stack Overflow. ImportError: cannot import name main when running pip –version command in windows7 32 bit