pip3命令执行失败的解决求助(Python3.5+WSL Ubuntu环境)
pip3命令执行失败的解决求助(Python3.5+WSL Ubuntu环境)
问题描述
我在WSL的Ubuntu环境中使用Python3.5(因特殊需求无法升级),执行pip3 install jira后,所有pip3命令都报错无法运行,就连pip3 --version都用不了。报错的核心信息是:
AttributeError: module 'os' has no attribute 'PathLike'
我已经手动删除了jira和typing-extensions相关文件:
sudo rm -rf /usr/local/lib/python3.5/dist-packages/jira sudo rm -rf /usr/local/lib/python3.5/dist-packages/jira-3.5.2.dist-info/ sudo rm -rf /usr/local/lib/python3.5/dist-packages/typing_extensions-4.8.0.dist-info/ sudo rm -rf /usr/local/lib/python3.5/dist-packages/typing_extensions.py
但问题依然存在,请问该怎么解决?
问题根源
这个错误的核心原因是:安装jira时自动拉取了高版本的certifi包,而这个版本的certifi依赖Python3.6及以上才有的os.PathLike属性,但Python3.5并没有这个属性,导致pip在调用依赖链(pip→requests→certifi)时直接崩溃。你删除了jira和typing-extensions,但高版本的certifi还留在系统里,所以问题没彻底解决。
解决方案
方案一:修复certifi包(优先尝试)
- 先彻底删除当前系统里的高版本certifi:
sudo rm -rf /usr/local/lib/python3.5/dist-packages/certifi*
- 下载Python3.5兼容的certifi版本(比如2020.12.5,这是支持Python3.5的最后几个稳定版本之一):
wget https://files.pythonhosted.org/packages/1f/29/1a52a3382d05b372619719080c98f17c69493cb851746505cfd064a2d968/certifi-2020.12.5-py2.py3-none-any.whl
- 用Python3直接安装这个兼容版本:
sudo python3 -m pip install certifi-2020.12.5-py2.py3-none-any.whl --force-reinstall
执行完这几步后,再试试pip3 --version,应该能恢复正常。
方案二:重新安装系统pip(如果方案一无效)
如果上面的方法还是不行,说明系统自带的pip组件已经被破坏,可以通过Ubuntu的包管理器重新安装:
- 先彻底卸载系统的python3-pip:
sudo apt-get remove --purge python3-pip sudo apt-get autoremove
- 重新安装python3-pip:
sudo apt-get update sudo apt-get install python3-pip
这样会恢复到系统默认的、和Python3.5完全兼容的pip版本,之后就能正常使用了。
后续注意事项
以后安装包时,一定要指定和Python3.5兼容的版本,避免再次出现依赖冲突:
- 比如安装jira时,要找支持Python3.5的版本(jira 2.x系列支持Python3.5),执行:
pip3 install jira<3.0
- 安装其他包前,先查清楚该包的版本兼容说明,避免安装过高版本的依赖。
备注:内容来源于stack exchange,提问作者Sourav Kannantha B
相关产品推荐
相关产品推荐

