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

Flask构建REST API测试时遇cannot import name 'Mapping'错误如何解决?

报错原因

你当前使用的Python版本为3.10+,该版本将原本位于collections模块中的抽象基类(包括Mapping、Sequence等)全部迁移到了collections.abc子模块下。而你安装的flask-jwt包已经停止维护多年,它依赖的旧版本PyJWT仍在使用Python 3.9及更早版本的导入规则,在Python3.10+环境运行就会触发该导入错误。

解决方案
  • 【推荐方案】替换为活跃维护的JWT扩展:停止使用已废弃的flask-jwt,改用目前生态主流的flask-jwt-extended,该包完全适配最新Python、Flask版本,功能也更丰富。操作步骤:
    1. 卸载旧依赖:执行pip uninstall flask-jwt PyJWT
    2. 安装新依赖:执行pip install flask-jwt-extended
    3. 按照flask-jwt-extended的使用规则调整现有接口的鉴权逻辑即可
  • 【兼容方案】降级Python版本:将本地Python版本降级到3.9及以下版本,即可直接兼容旧版flask-jwt的导入逻辑,无需修改代码
  • 【临时应急方案】手动修改依赖源码:找到报错路径下的C:\Users\kally\AppData\Roaming\Python\Python310\site-packages\jwt\api_jwt.py文件,将from collections import Mapping修改为from collections.abc import Mapping,如果后续出现其他同类抽象类导入错误,均按照该规则调整导入路径即可。该方案仅能临时解决问题,换环境或重新安装依赖后需要再次修改,不建议长期使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:08