Full error info is:
Traceback (most recent call last):
File "/Users/lixiaoxian/Work/ner/venv/bin/pip", line 7, in <module>
from pip._internal import main
ImportError: No module named _internal
pip 是在 virtualenv 中的 pip,在外面的 pip 没有问题,猜想报错应该是版本的问题,
cat venv/bin/pip 发现内容如下:
# -*- 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())
将 from pip._internal import main 修改为 from pip import main 搞定
github issue 地址:
https://github.com/pypa/pip/issues/5253
但是如此修改后,会导致 virtualenv 中的环境没有隔离,pip 使用的是外部,装 virtualenv 中没有的包会报已安装
最后升级了外部的 pip 为 10.0.1 之后 virtualenv 中的 pip 就不报错了