Django应用Heroku部署失败:Buildpack兼容性问题求助
解决Heroku Python Buildpack检测失败的问题
我来帮你排查这个Heroku构建失败的问题,这种情况大多是Python buildpack找不到必要的依赖文件或者项目结构配置不对导致的,给你几个具体的解决方向:
确认依赖文件的位置和完整性
Heroku的Python buildpack会在仓库根目录寻找Pipfile+Pipfile.lock或者requirements.txt来识别Python项目。你需要确保:Pipfile和Pipfile.lock都在你推送的Git仓库根目录下(如果用pipenv的话),而且已经提交到Git(别被.gitignore排除了)- 如果只生成了
Pipfile,记得运行pipenv lock生成对应的Pipfile.lock文件,Heroku需要这个来确定依赖版本
调整Procfile的位置和内容
Procfile必须放在Git仓库的根目录,不能放在子文件夹里。另外你的Procfile里的PYTHONPATH设置可能有问题:- Heroku的工作目录就是你推送的仓库根目录,
pwd/..会指向仓库外的路径,这在Heroku环境里是不存在的 - 假设你的项目结构是根目录下有
smartlogisticsserver文件夹(里面包含wsgi.py),可以把Procfile改成:web: gunicorn --bind 0.0.0.0:$PORT smartlogisticsserver.wsgi:application - 如果确实需要调整PYTHONPATH,应该基于仓库根目录来设置,比如
PYTHONPATH=.,而不是上级目录
- Heroku的工作目录就是你推送的仓库根目录,
手动指定Python Buildpack
有时候Heroku可能自动识别错了buildpack,你可以手动设置:heroku buildpacks:set heroku/python然后重新推送代码到Heroku
检查Git推送的目录是否正确
确保你推送的是包含Pipfile、Procfile和项目代码的根目录,而不是某个子目录。如果你的项目代码在子目录里,要么调整Git仓库的根目录,要么使用Heroku的子目录buildpack来指定运行目录(不过优先推荐调整仓库结构,更简单稳定)
内容的提问来源于stack exchange,提问作者Robert
相关产品推荐
相关产品推荐

