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

升级Connexion等依赖后SwaggerHub生成代码报错:找不到flask_app模块

解决Connexion 3.x升级后SwaggerHub生成代码的ModuleNotFoundError问题

升级connexion(2.14.2→3.0.6)、flask(2.2.5→3.0.3)和werkzeug(2.2.3→3.0.2)及所有相关依赖库后,SwaggerHub生成的Flask服务端代码桩无法适配新版本,出现以下错误:

2024-04-16 14:13:22,701 [MainThread ] ERROR root - Failed with exception: No module named 'connexion.apps.flask_app'
Traceback (most recent call last):
File "neoctl\src\main\main.py", line 523, in main
File "neoctl\src\main\main.py", line 191, in init
File "neoctl\src\modules\restserver\run.py", line 5, in <module>
File "neoctl\src\generated\server\swagger_server\encoder.py", line 1, in <module>
ModuleNotFoundError: No module named 'connexion.apps.flask_app'

经确认,connexion.apps.flask_app模块在Connexion 3.x版本中已重命名为connexion.apps.flask,可通过以下步骤恢复代码正常运行:

解决方案

1. 修改生成代码的导入路径

找到生成代码中所有引用connexion.apps.flask_app的文件(比如报错中的encoder.py),将原有导入语句:

from connexion.apps.flask_app import FlaskJSONEncoder

替换为:

from connexion.apps.flask import FlaskJSONEncoder

2. 全面检查并替换旧模块引用

除encoder.py外,还需检查生成的服务端代码其他文件(如run.py、__init__.py等),只要存在connexion.apps.flask_app的引用,全部替换为connexion.apps.flask。

3. 调整SwaggerHub生成配置(长期方案)

若后续需要重新生成代码,在SwaggerHub的代码生成设置中:

  • 选择适配Connexion 3.x的代码模板;若默认Python-Flask模板未更新,可手动指定兼容3.x的模板版本,或反馈给SwaggerHub官方更新模板,使其支持新的导入路径。

4. 确认依赖版本匹配

在项目的requirements.txt中明确指定兼容的依赖版本:

connexion==3.0.6
flask==3.0.3
werkzeug==3.0.2

执行以下命令重新安装依赖:

pip install -r requirements.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 15:52:37