Linux Python3.10环境执行pip3命令报collections无MutableMapping属性错误
错误原因
该报错为Python 3.10的版本不兼容问题:从Python 3.3版本开始官方就已公示collections.MutableMapping这类抽象基类会逐步迁移到collections.abc模块下,Python 3.10正式移除了collections模块下的这些旧别名。你当前使用的pip版本过低,依赖的旧版pyparsing还在调用已被移除的旧路径接口,因此触发AttributeError。
解决步骤
- 优先使用Python 3.10内置模块修复pip,无需调用已损坏的pip3入口:
执行命令:python3.10 -m ensurepip --upgrade
该命令会调用Python 3.10自带的ensurepip模块,直接安装适配3.10版本的最新pip。 - 升级完成后验证修复效果:
执行pip3 -V或pip3 freeze,确认无报错且pip版本对应Python 3.10即可。 - 若上述方法执行失败,可临时修改报错文件做兼容:
打开报错信息里提到的/usr/share/python-wheels/pkg_resources-0.0.0-py2.py3-none-any.whl/pkg_resources/_vendor/pyparsing.py文件,在导入collections模块的代码后新增一行:
该方案为临时兼容手段,后续升级对应依赖后可删除该行代码。collections.MutableMapping = collections.abc.MutableMapping
注意事项
不要将系统默认的python3软链接直接指向Python 3.10,Zorin OS 15.3自带的系统工具依赖内置的旧版Python,强制修改软链接会导致系统工具异常,后续安装第三方包建议使用python3.10 -m pip install 包名的格式调用3.10对应的pip,和系统原生Python环境做隔离。
内容的提问来源于stack exchange,提问作者Clot
相关产品推荐
相关产品推荐

