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

Python3.10环境运行Flask-JWT项目导入Mapping报错无法启动服务如何解决

问题原因

这个报错是你使用的flask-jwt依赖的旧版本PyJWT库和Python3.10版本不兼容导致的:Python从3.10版本开始,移除了collections模块下的Mapping类,该类已被迁移到collections.abc模块下,旧版本库的导入语句不符合新版本Python的语法规则。

解决方案

推荐优先选择方案1,长期稳定性更好:

方案1:替换为活跃维护的JWT库

flask-jwt已经停止维护多年,完全不适配3.10+版本的Python,建议替换为目前社区主流的Flask-JWT-Extended库,适配全版本Python3.6+,功能也更全面:

  • 先卸载旧的依赖库:
pip uninstall -y flask-jwt PyJWT
  • 安装新的JWT库:
pip install flask-jwt-extended
  • 同步修改代码导入语句,将原有的from flask_jwt import JWT, JWT_required调整为对应语法即可,原有业务逻辑仅需少量调整即可适配。

方案2:保留原有flask-jwt逻辑的临时解决方法

如果不想修改原有代码,可以选择以下任意一种方式处理:

  • 方法A:将项目运行的Python版本降级到3.9及更早版本,可直接兼容旧版本依赖
  • 方法B:手动修改依赖库的导入语句,打开报错提示的jwt/api_jws.py文件,将第5行的from collections import Mapping修改为:
try:
    from collections.abc import Mapping
except ImportError:
    from collections import Mapping

修改后即可正常启动服务,该兼容写法同时适配新旧版本Python。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:48:01