我在向Heroku部署Flask应用时遇到问题。我已经在Heroku上成功创建了应用程序,它在Foreman上本地运行正常,我的Procfile正确(我认为)和我的requirements.txt在目录的根目录中。我仍然需要设置环境变量以及与我使用的AWS RDS Postgres数据库的连接,但我还没有。我对Heroku的初衷仍在继续。
这是我的错误,我尝试git push herok master
:
Counting objects: 219, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (206/206), done.
Writing objects: 100% (219/219), 274.75 KiB | 0 bytes/s, done.
Total 219 (delta 98), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote:
remote: ! Push rejected, no Cedar-supported app detected
remote: HINT: This occurs when Heroku cannot detect the buildpack
remote: to use for this application automatically.
remote: See https://devcenter.heroku.com/articles/buildpacks
remote:
remote: Verifying deploy...
remote:
remote: ! Push rejected to my-awesome-app.
remote:
To https://git.heroku.com/my-awesome-app.git`
这是我的Procfile:
web: gunicorn app:app --log-file=-
这是我的文件结构:
\project (git root directory)
Procfile
requirements.txt
[...other files...]
run.py
\venv
\etl
\app
[...other files...]
\static
\templates
我经常环顾四周,找不到任何帮助。
如果有帮助,请尽快添加任何其他信息。这非常令人沮丧!
答案 0 :(得分:1)
在存储库的根目录中,键入:
echo "python-2.7.10" > runtime.txt
如果您使用的是其他版本的Python,请参阅this article了解受支持的运行时。
将runtime.txt
添加到您的git存储库并执行推送到heroku。它应该强制它将您的应用程序检测为Python应用程序。
答案 1 :(得分:0)
我明白了,这是我的错。我的.gitignore中有* .txt,并没有意识到我没有添加/提交requirements.txt到git repo。哪...解释了为什么heroku找不到它!
答案 2 :(得分:-1)
我也遇到了这种错误"请求的运行时()不适用于此堆栈(cedar-14)"当我做了一个git push master。 这可能是一个小细节,但请确保在文件runtime.txt中更改后不要忘记提交。
fenoum@sakay:~/githubproject/myapp$ cat runtime.txt
python-2.7.9
fenoum@sakay:~/githubproject/myapp$ git status
On branch master .....
modified: runtime.txt
no changes added to commit (use "git add" and/or "git commit -a")
fenoum@sakay:~/githubproject/myapp$ git commit -am "runtime fixed"
现在有效,谢谢。