Python3.10导入MutableMapping报错,换3.11环境解决但需重装依赖
解决Python 3.10中
from collections import MutableMapping的导入错误 问题原因
Python 3.3起MutableMapping就从collections模块迁移到了collections.abc,但你使用的部分依赖包(比如旧版pymongo)内部代码还在沿用旧的导入路径,导致在Python3.10下触发ImportError。你修改自己代码的导入路径没用,因为报错来自依赖包内部。
解决方案
升级适配Python3.10的依赖包
直接卸载旧版本并重装最新版,最新版的pymongo、Scrapy已经修复了导入路径问题:pip uninstall -y pymongo "pymongo[srv]" scrapy pip install --upgrade pymongo "pymongo[srv]" scrapy临时修复依赖包代码(应急用)
找到报错的依赖包文件(比如pymongo的某个模块),将其中的from collections import MutableMapping替换为from collections.abc import MutableMapping。但这个方法不推荐,依赖包更新后会失效,还可能引发其他兼容问题。高效迁移到Python3.11虚拟环境
如果升级依赖无效,先把当前Python3.10环境的依赖导出:pip freeze > requirements.txt然后在Python3.11虚拟环境中执行:
pip install -r requirements.txt就能一键安装所有依赖,不用手动逐个操作。
内容的提问来源于stack exchange,提问作者Aaron Wang
相关产品推荐
相关产品推荐

