Dash应用本地运行正常部署Heroku报Worker启动错误如何解决
错误修复步骤
报错的根本原因是Procfile中gunicorn的应用入口格式不符合要求,gunicorn采用模块名:实例名的寻址规则,不需要添加.py文件后缀。按以下步骤修复即可:
- 第一步:修改项目根目录下的Procfile内容,将原有配置
替换为web:gunicorn main.py:server
注意web: gunicorn main:serverweb:后面需要加空格,部分场景下缺失空格也会触发启动异常 - 第二步:检查以下配套配置,避免连带报错:
- 确认
main.py文件存放在项目根目录,没有被放入任何子文件夹;如果文件存放在子目录(例如app文件夹下),则入口需要调整为app.main:server - 确认
main.py没有被加入.gitignore规则,已正常提交到git仓库,可执行git ls-files命令查看已提交的文件列表验证 - 确认
main.py中存在明确的server实例导出,代码示例如下:import dash app = dash.Dash(__name__) server = app.server # 必须存在这行,gunicorn需要调用该WSGI实例 # 后续为你的应用路由、布局代码 - 确认项目根目录存在
requirements.txt文件,且已包含gunicorn、dash、flask等依赖声明
- 确认
- 第三步:将修改后的代码重新提交到git,再推送到Heroku触发重新部署即可:
git add Procfile git commit -m "fix: 修正gunicorn入口配置" git push heroku main # 如果你部署的是其他分支,将main替换为对应分支名
如果部署后依然报错,可以执行heroku logs --tail查看实时运行日志定位具体问题。
内容的提问来源于stack exchange,提问作者GV-9wj
相关产品推荐
相关产品推荐

