Python3.10与3.11版本执行pip install报错无法安装依赖包问题求助
问题根源
你遇到的报错本质是系统全局安装的pip版本过低,仅适配Python3.8及更早版本,和Python3.10/3.11的依赖要求不兼容:
- 你通过update-alternatives将默认python3指向Python3.8,系统源安装的全局pip默认绑定Python3.8的依赖库,pip的vendor目录下没有适配高版本Python的html5lib组件
- 执行
python3.10 -m pip时,Python3.10会优先调用全局的旧版pip文件,调用过程中依赖匹配失败就触发了ImportError报错
你之前重装Python本体没有解决问题,是因为损坏的全局pip组件没有被同步更新替换。
解决方案
- 先卸载系统源安装的全局pip,避免旧版本干扰:
如果你用的是Debian/Ubuntu系列系统,执行:
其他发行版对应使用自带的包管理器卸载全局python3-pip包即可。sudo apt remove python3-pip -y - 为高版本Python单独安装对应适配的pip,直接调用Python内置的ensurepip模块即可完成安装升级:
为Python3.10安装pip:
为Python3.11安装pip:python3.10 -m ensurepip --upgradepython3.11 -m ensurepip --upgrade - 验证安装结果:
执行命令查看pip版本和对应绑定的Python版本:
返回结果中如果包含python3.10的路径,说明安装成功,之后给Python3.10安装依赖统一使用python3.10 -m pip --versionpython3.10 -m pip install 包名的格式即可,避免和其他版本的pip混淆。
可选优化
如果需要简化调用命令,可以为不同版本的pip设置别名:
- 打开你当前使用的shell的配置文件(如bash对应
~/.bashrc,zsh对应~/.zshrc),添加以下内容:alias pip3.10='python3.10 -m pip' alias pip3.11='python3.11 -m pip' - 执行
source ~/.bashrc(对应你修改的配置文件)使别名生效,之后就可以直接用pip3.10 install jedi这类命令安装对应版本的依赖。
内容的提问来源于stack exchange,提问作者Max
相关产品推荐
相关产品推荐

