我无法将我的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的应用程序。
我可能做错了什么?
答案 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