无法将初始Flask应用部署到Heroku"未检测到Cedar支持的应用",可与Foreman

时间:2015-07-25 21:02:35

标签: python-2.7 heroku flask gunicorn

我在向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  

我经常环顾四周,找不到任何帮助。

如果有帮助,请尽快添加任何其他信息。这非常令人沮丧!

3 个答案:

答案 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"

现在有效,谢谢。