Heroku Ruby服务器安装Python pip依赖时遇Buildpack检测失败问题
解决Heroku多Buildpack部署中Python Buildpack检测失败的问题
这个错误的核心原因很明确:Heroku的Python Buildpack会自动检查你的项目根目录是否存在requirements.txt、Pipfile或者setup.py这类标识Python项目的文件,而你目前还没有创建任何这类文件,所以Buildpack判定你的应用不兼容,导致部署失败。
下面是具体的解决步骤:
第一步:创建Python依赖配置文件
根据你习惯的Python包管理工具选择:- 如果你用pip,在项目根目录新建
requirements.txt文件,把你需要的Python依赖包列进去,比如:
(哪怕暂时没有具体依赖,也可以先保留空文件,但不能不存在)requests==2.31.0 numpy==1.26.0 - 如果你用Pipenv,在本地项目目录执行
pipenv install(需要先安装pipenv),这会自动生成Pipfile和Pipfile.lock文件,确保这两个文件在项目根目录。
- 如果你用pip,在项目根目录新建
第二步:提交文件并重新部署
将新建的依赖文件添加到git仓库,然后提交并推送:git add requirements.txt # 或者对应的Pipfile/Pipfile.lock git commit -m "Add Python requirements file for buildpack detection" git push heroku master额外提示:确认Buildpack顺序
你之前执行了heroku buildpacks:add --index 1 heroku/python,这会让Python Buildpack先运行,Ruby Buildpack后运行。这个顺序是没问题的,但可以通过heroku buildpacks命令确认当前的Buildpack列表,确保两个Buildpack都存在:heroku buildpacks
这样处理后,Python Buildpack就能成功检测到你的项目里的Python配置,完成环境搭建,之后你的Ruby代码就可以调用Python依赖了。
内容的提问来源于stack exchange,提问作者max pleaner
相关产品推荐
相关产品推荐

