Ubuntu 升级 pip 后出现 ImportError: cannot import name main
问题
环境是 ubuntu 16.04 server,在使用 pip 安装模块的时候,系统提示有新版本的 pip 更新,所以毫不犹豫的就更新了。
python -m pip install --upgrade pip
更新完之后发现坏了,使用 pip -V
查看版本,报错了:
Traceback (most recent call last):
File "D:\Python\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "D:\Python\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "D:\Python\Scripts\pip.exe\__main__.py", line 5, in <module>
ImportError: cannot import name main
谷歌了一把,发现很多人都有这个问题:
ImportError: cannot import name main,
原因可能是 Linux 下的 python 2.7 的 pip 10 版本存在BUG。
解决
出错的脚本是 /usr/bin/pip.py
。
把下面的三行:
from pip import main
if __name__ == '__main__':
sys.exit(main())
修改为:
from pip import __main__
if __name__ == '__main__':
sys.exit(__main__._main())
这样问题就解决了!