Heroku部署Django应用时出现buildpack、Procfile及H14报错如何解决
Heroku部署Django相关报错排查与解决方案
1. 处理「Failed to detect app matching no buildpack」报错
该报错核心原因是Heroku未识别到当前项目的开发语言栈,无法匹配对应构建包,按以下步骤排查:
- 确认项目根目录存在
requirements.txt文件,文件中需包含Django、gunicorn等项目依赖,Heroku默认通过该文件识别Python项目 - 若使用Pipenv或Poetry做依赖管理,需确保根目录存在
Pipfile/Pipfile.lock或pyproject.toml/poetry.lock文件 - 手动指定Python构建包,执行命令:
heroku buildpacks:set heroku/python
2. 处理「Procfile declares types -> (none)」报错
该报错是Heroku未读取到合法的进程启动配置文件,按以下步骤处理:
- 在项目根目录新建名为
Procfile的文件,注意首字母必须大写,不能加任何后缀名 - 在文件内写入Django对应的web进程启动配置:
将上述配置中的「你的项目名」替换为Django项目的根模块名(即和settings.py同目录的文件夹名称)web: gunicorn 你的项目名.wsgi --log-file - - 确认
gunicorn已经添加到依赖文件中,若未添加本地执行pip install gunicorn后更新requirements.txt即可
3. 处理H14「No web processes running」报错
该报错是前两个问题的连锁结果,没有可用的web进程接收用户请求,按以下步骤处理:
- 完成前两个问题的修复后,将所有修改提交到Git:
git add . git commit -m "fix build config" - 将代码推送到Heroku:
git push heroku main(若你的主分支名称为master则替换为master) - 手动启动web dyno实例:
heroku ps:scale web=1 - 若依然访问异常,执行
heroku logs --tail查看最新日志,排查Django本身配置问题(如ALLOWED_HOSTS未配置Heroku域名、静态资源配置错误等)
内容的提问来源于stack exchange,提问作者loopassembly
相关产品推荐
相关产品推荐

