Heroku推送Django代码失败求助:解决Buildpack不兼容、重复构建版本问题及多余Git仓库删除方法
解决Django项目推送到Heroku的问题及Git仓库清理方案
一、先搞定推送失败的核心问题
从你的日志来看,主要有两个问题导致推送被拒绝,咱们一步步解决:
1. Buildpack不兼容问题
Heroku的Python构建包需要识别你的项目是Python/Django项目,所以得确保根目录有两个关键文件:
- 生成依赖清单文件:在你的
tmenv虚拟环境激活状态下,执行这个命令把所有依赖导出:
这个文件会告诉Heroku需要安装哪些Python包。pip freeze > requirements.txt - 创建Procfile启动文件:在项目根目录新建一个名为
Procfile的文件(注意没有后缀),里面写入:
这里的web: gunicorn taskmate.wsgi --log-file -taskmate要换成你自己Django项目的根目录名(也就是包含wsgi.py的那个文件夹),这个文件是告诉Heroku怎么启动你的Web应用。
2. 重复构建与分支推送问题
日志里提到同一版本代码重复构建,而且Heroku现在默认的主分支是main,不是master,所以推送命令要调整:
- 如果你的本地分支是
master,直接用这个命令推到Heroku的main分支:git push heroku master:main - 或者你可以把本地分支改成
main,以后直接推送更方便:git branch -m master main git push heroku main
二、删除多余的Git仓库
要清理多余的Git远程仓库,步骤很简单:
- 先查看当前项目关联的所有远程仓库:
执行后会列出所有仓库的名字和地址,比如可能有git remote -vheroku和origin两个仓库。 - 删除你不需要的那个仓库,比如要删掉
origin的话,执行:git remote remove origin - 再执行
git remote -v确认,剩下的只有Heroku的仓库就没问题了。
额外检查点(避免后续踩坑)
- 确保你的
.gitignore文件里包含了tmenv/(虚拟环境目录),别把虚拟环境的文件提交到Git里,不然会有大量冗余文件。 - 打开Django的
settings.py,把DEBUG改成False(生产环境不能开调试),然后在ALLOWED_HOSTS里加上你的Heroku应用域名:ALLOWED_HOSTS = ['matetask.herokuapp.com']
内容的提问来源于stack exchange,提问作者Nilima Sharma
相关产品推荐
相关产品推荐

