Heroku/python 无法检测到 set buildpack
Posted
技术标签:
【中文标题】Heroku/python 无法检测到 set buildpack【英文标题】:Heroku/python failed to detect set buildpack 【发布时间】:2017-01-10 00:14:14 【问题描述】:我是 Django 新手,我创建了一个应用程序并想使用 Heroku 部署它。但是,当我做git push heroku master
(我按照 Heroku 的入门)时,我得到了:
Counting objects: 36, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (33/33), done.
Writing objects: 100% (36/36), 19.22 KiB | 0 bytes/s, done.
Total 36 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Failed to detect set buildpack https://codon-buildpacks.s3.amazonaws.com/buildpacks/heroku/python.tgz
remote: More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
remote:
remote: ! Push failed
remote: Verifying deploy....
remote:
remote: ! Push rejected to dry-waters-63931.
remote:
To https://git.heroku.com/dry-waters-63931.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/dry-waters-63931.git'
我的根目录:
├── assignment
├── household_management (django app)
├── templates
|
├── db.sqlite3
|
├── manage.py
如果你们能提供帮助,我将不胜感激。我现在真的很郁闷……
【问题讨论】:
【参考方案1】:您需要添加一个requirements.txt
文件,其中包含运行您的应用程序所需的所有模块。
您可以使用pip freeze > requirements.txt
将所有模块冻结到一个文件中。我只建议您在使用 virtualenv 时这样做,否则它会添加您的所有模块。
无论如何,只需确定您的应用程序需要哪些模块,然后创建一个名为 requirements.txt
的文件并将其放入您的应用程序目录中。
需求文件的语法如下:
package name == version #
package name == version #
package name == version #
注意:指定某个版本号是可选的。
这是一个示例需求文件(取自 this 教程):
Flask==0.11
Jinja2==2.8
gunicorn==19.6.0
别忘了提交你的 requirements.txt
【讨论】:
我得到了完全相同的错误,但也完成了你的建议。 执行“git add .” 并将更改提交到 git!【参考方案2】:以下是您可以解决上述问题的步骤:
在您的应用文件夹中创建一个 requirements.txt 文件。
从同一文件夹运行命令 pip freeze > requirements.txt。
现在提交您的更改。
混帐添加。
git commit -m "添加的要求"
git push heroku 大师
这里有一个问题,在我的例子中:我没有添加任何模块,因为 pip 还可以自动安装来自本地代码库的依赖项。在我检查我的 requirements.txt 文件时运行命令后,已经自动添加了模块。
注意:如果您没有遇到这种情况,您可以像哈里森在回答中所说的那样手动完成。
仅当您收到与我的情况类似的错误时,此步骤才会出现有关 conda== version cant be found 的错误。由于模块是根据我的本地代码库自动添加的,因此 Conda 版本安装在我的本地计算机中,这就是它自动添加到我的requirement.txt 文件中的原因。您所要做的就是将其从 requirements.txt 文件中删除。
再次提交更改。
认为这可能会对遇到类似错误的一些人有所帮助。
【讨论】:
【参考方案3】:您只需将 requirements.txt 添加到您的主应用程序文件夹。它包含我们处理的包,例如 django 、flask。
【讨论】:
以上是关于Heroku/python 无法检测到 set buildpack的主要内容,如果未能解决你的问题,请参考以下文章
Heroku:Python Flask 应用程序 - 自动从 https 重定向到 http