Heroku Python无法检测到app匹配的buildpack

时间:2017-04-05 10:27:46

标签: python heroku flask

我无法将我的Flask应用部署到Heroku ... 我已经在每个线程中搜索到了我没有用的东西:添加一个runtime.txt,设置一个buildpack。我现在不知道会出现什么问题。

以下是该应用的根目录:

Project
 - .git
 - Procfile
 - Readme.md
 - app
 - config.py
 - requirements.txt
 - runtime.txt
 - web.py

这里是requirements.txt的内容:

appdirs==1.4.3
click==6.7
Flask==0.12.1
Flask-WTF==0.14.2
itsdangerous==0.24
Jinja2==2.9.5
MarkupSafe==1.0
packaging==16.8
pyparsing==2.2.0
six==1.10.0
Werkzeug==0.12.1
WTForms==2.1

Procfile:

web: python web.py

和runtime.txt:

python-2.7.13

当我git push heroku master时,它会打印:

remote: Compressing source files... done.
remote: Building source:
remote:
remote:  !     No default language could be detected for this app.
remote:             HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
remote:             See https://devcenter.heroku.com/articles/buildpacks
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !   Push rejected to appname.
remote:

我尝试添加一个带有heroku buildpacks:add heroku/Python的buildpack,但后来它说它无法检测到python buildpack的应用程序。

我可能做错了什么?

5 个答案:

答案 0 :(得分:1)

requirements.py更改为requirements.txt

如果您使用默认的Python 2.7.13,则不需要runtime.txt。您认为指定运行时会触发语言检测,但即使没有要安装的软件包,Heroku requires也是空的requirements.txt

答案 1 :(得分:0)

我花时间犯了一个非常相似的错误。

在我的情况下,我尝试部署django应用程序。

我只是运行这些命令来设置buildpack

  heroku login
  heroku create --stack cedar --buildpack git://github.com/heroku/heroku-buildpack-python.git
  heroku config:add BUILDPACK_URL=git@github.com:heroku/heroku-buildpack-python.git#purge
  heroku config:set HEROKU=1

我决定在此发帖,因为我花了很长时间才得到这些提示

答案 2 :(得分:0)

将Procfile的内容编辑为

web: gunicorn web:app --log-file=-

我假设您的web.py文件包含在项目的根文件夹中,即一旦您进入项目的“Project”文件夹就会看到它。

否则,如果它包含在app文件夹中,则使用

web: gunicorn app.web:app --log-file=-

答案 3 :(得分:0)

我也遇到了类似的问题。我能够通过添加runtime.txt

来修复它

只需将您正在使用的python版本放在runtime.txt

python-2.7.14

答案 4 :(得分:0)

我迟到了,但如果您已经有一个 requirements.txt 文件并且出现此错误,请尝试添加一个 Procfile,如文档中所示: https://devcenter.heroku.com/articles/getting-started-with-python#define-a-procfile