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

使用Gunicorn3启动Flask应用时自动开启Flask开发服务器的问题

问题原因与解决方案

核心原因是你的Flask应用代码中,app.run()语句没有被if __name__ == '__main__':条件判断包裹,导致Gunicorn加载应用模块时,意外触发了Flask开发服务器的启动。

具体解释

当你执行gunicorn3 --workers=1 main:app时,Gunicorn会导入main模块来加载Flask应用实例app。如果你的main.py里直接写了app.run()而没有做条件判断,这行代码会在模块被导入时直接执行——既启动了Gunicorn的生产服务器(监听8000端口),又启动了Flask自带的开发服务器(监听5000端口),就出现了你看到的双重启动日志。

修复步骤

修改你的main.py代码,将app.run()放在if __name__ == '__main__':块内:

from flask import Flask

app = Flask(__name__)

# 你的路由和业务代码...

# 仅当直接运行该脚本时才启动Flask开发服务器
if __name__ == '__main__':
    app.run()

验证方法

修改完成后重新执行Gunicorn启动命令,此时日志应该只会显示Gunicorn的启动信息,不会再出现Flask开发服务器的相关输出。

内容的提问来源于stack exchange,提问作者Anthr. Line

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 10:35:01