本机环境: Ubunt16.04: python2.7 + python3.6
笔者在使用pip3更新python第三方模块时,提示pip3的版本比较旧8.0.1,可以更新到最新版19.1.1
随手更新了之后就不能使用了,报No module named 'pip._internal'的错误
网上找了一些方法仍然不行,几乎想重装系统了
网友方法一:
重新安装pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3.7 get-pip.py --force-reinstall
网友方法二:
重新安装pip
easy_install pip
网友方法三:
修改from pip._internal import main 这句报错的 pip._internal 为 pip
尝试了也都不能成功, 最后在网友方法三的基础上,总结出自己的解决方法
有效过程: 1 和 5
分析解决过程:
1 执行更新pip3命令: sudo pip3 install -- upgrade pip
2 更新之后状况: pip3 -V
报错:ImportError: No module named _internal
3 修改
/usr/bin/pip3
/usr/local/bin/pip3
/home/zjr/.local/bin/pip3
这三个路径下的pip3里面的
由 from pip._internal import main
改为 from pip import main
4 执行pip3 -V , 依然报错cannot import name 'main',找不到正确的pip3
whereis pip3 查询后,发现分别有pip3 和pip在python3的路径里
/usr/bin/pip3 /usr/local/bin/pip3 /home/zjr/.local/bin/pip3
/usr/bin/pip3.6 /usr/local/bin/pip3.6 /home/zjr/.local/bin/pip3.6
所以步骤3 的更改无效
5 将4 路径里的pip删除
并将所有路径pip3.6里的 pip._internal 改为 pip
将所有路径的pip3.6重命名为pip
最后附上更新完毕结果:
另外:
pip3的安装、升级和卸载指令分别为:
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip
sudo apt-get remove -purge python3-pip
配置只输入python3时就默认使用3.6版本:
1、update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1
2、update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
3、update-alternatives --config python3
4、python3 -V 查看默认python3版本