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

Heroku推送Django代码失败求助:解决Buildpack不兼容、重复构建版本问题及多余Git仓库删除方法

解决Django项目推送到Heroku的问题及Git仓库清理方案

一、先搞定推送失败的核心问题

从你的日志来看,主要有两个问题导致推送被拒绝,咱们一步步解决:

1. Buildpack不兼容问题

Heroku的Python构建包需要识别你的项目是Python/Django项目,所以得确保根目录有两个关键文件:

  • 生成依赖清单文件:在你的tmenv虚拟环境激活状态下,执行这个命令把所有依赖导出:
    pip freeze > requirements.txt
    
    这个文件会告诉Heroku需要安装哪些Python包。
  • 创建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远程仓库,步骤很简单:

  1. 先查看当前项目关联的所有远程仓库:
    git remote -v
    
    执行后会列出所有仓库的名字和地址,比如可能有heroku和origin两个仓库。
  2. 删除你不需要的那个仓库,比如要删掉origin的话,执行:
    git remote remove origin
    
  3. 再执行git remote -v确认,剩下的只有Heroku的仓库就没问题了。

额外检查点(避免后续踩坑)

  • 确保你的.gitignore文件里包含了tmenv/(虚拟环境目录),别把虚拟环境的文件提交到Git里,不然会有大量冗余文件。
  • 打开Django的settings.py,把DEBUG改成False(生产环境不能开调试),然后在ALLOWED_HOSTS里加上你的Heroku应用域名:ALLOWED_HOSTS = ['matetask.herokuapp.com']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:19:08