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

Flask应用flask run正常,Gunicorn启动报相对导入错误

问题原因分析

1. Flask与Gunicorn的启动上下文差异

flask run 启动时会自动把项目根目录(~/flasksvr)加入Python的sys.path,同时将整个项目识别为可导入的Python包,模块间的相对导入因此能正常解析。

而gunicorn app:app启动时,是直接把app.py当作顶层脚本文件执行的——此时Python不会将其视为某个包的组成部分,自然无法识别相对导入里依赖的父包结构,所以抛出ImportError。

2. 相对导入残留或绝对导入配置错误

你仅替换了部分相对导入,子项目中仍存在from ..app import sock这类依赖包层级的相对导入语句,在Gunicorn的启动模式下,Python无法解析..对应的父包,错误会持续出现。

另外,若你使用的绝对导入路径不完整(比如未基于项目根包的全路径),或者项目根目录没被加入sys.path,也会导致绝对导入找不到目标模块。

3. 包结构识别不明确

虽然Python 3.3+支持无__init__.py的命名空间包,但如果项目根目录(~/flasksvr)和modules子目录下没有创建空的__init__.py文件,Python可能无法明确识别它们的包层级关系,进一步加重导入解析的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 07:48:13