You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python导入openpyxl报错:无法从collections导入Mapping如何解决?

问题根因

你安装的openpyxl版本过低,和你使用的Python 3.10版本不兼容。Python 3.3起就将Mapping这类抽象基类从collections模块迁移到了collections.abc子模块,Python 3.10及以上版本直接移除了collections模块下的旧导入入口,旧版本openpyxl仍使用旧导入语法就会触发该报错。

解决方法

方案一:升级openpyxl到最新兼容版本(优先推荐)

  • 直接在终端执行升级命令:
    pip install --upgrade openpyxl
  • 如果升级时提示权限不足,可执行:
    pip install --upgrade openpyxl --user
  • 如果你使用conda环境,执行:
    conda update openpyxl
    升级完成后重新运行代码即可正常导入openpyxl。

方案二:手动适配旧版本openpyxl(仅适用于不能升级openpyxl的场景)

如果项目要求必须使用当前的旧版本openpyxl,可手动修改源码适配:

  1. 打开报错提示的文件:C:\Users\*User Name*\AppData\Local\Programs\Python\Python310\lib\site-packages\openpyxl\formatting\rules.py
  2. 找到第5行的from collections import Mapping,修改为:
    from collections.abc import Mapping
  3. 后续如果遇到其他同类cannot import name 'XXX' from 'collections'报错,都按照同样逻辑,将对应的导入源改为collections.abc即可。

内容的提问来源于stack exchange,提问作者Borislav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 22:54:07