【问题标题】:How to resolve "Push rejected, no Cedar-supported app detected" error in Heroku如何解决 Heroku 中的“推送被拒绝,未检测到 Cedar 支持的应用程序”错误
【发布时间】:2015-10-06 00:48:51
【问题描述】:

这是我的Django 项目结构:

Testing
|_djangoApp
|_Testing
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- utils.py
| |-- wsgi.py
|
|_manage.py
|_Procfile
|_requirements.txt
|_README.md

我正在使用codeship.io 部署构建并将其推送到配置良好的Heroku。在heroku 上,我添加了一个名为“Testing”的应用程序。

我尝试使用codeshipHeroku 上推送构建,但它给了我以下错误:

 !     Push rejected, no Cedar-supported app detected

To git@heroku.com:Testing.git
! [remote rejected] feca277a98c193c3b338ee1bd1406e6bc8f6b9e7 -> master (pre-receive hook declined)
error: failed to push some refs to 'git@heroku.com:Testing.git'

Procfile 的内容:

web: gunicorn Testing.wsgi

requirements.txt 的内容:

Django==1.3.1
docutils==0.8.1
psycopg2==2.4.2
Fabric==1.3.2
South==0.7.3
gunicorn==0.13.4
newrelic==1.0.5.156
django-celery==2.4.2
django-kombu==0.9.4
django-storages==1.1.3
boto==2.1.1
pylibmc==1.2.2
django-pylibmc-sasl==0.2.4
django-sorting==0.1
django-guardian==1.0.3
django-pagination==1.0.7
pyst2==0.4
django-annoying==0.7.6
django-tastypie==0.9.11
django-coverage==1.2.1
django-nose==0.1.3
nosexcover==1.0.7
django-debug-toolbar==0.8.5
Sphinx==1.1.2
django-cache-machine==0.6
django-twilio

我刚刚从Bitbucket 的私人仓库中克隆了我的项目,并添加了Procfile 以兼容Heroku。我试图遵循官方文档,但它只是从头开始关注。我在这里缺少什么?需要帮助!

【问题讨论】:

  • Procfilerequirements.txt 是否都已提交到 git 并被推送?
  • @YuvalAdam 是的!他们都在同一个目录中
  • 嗯...我不知道什么是“codeship”,所以你应该对照官方文档检查你的部署过程,你可能会在那里找到答案。
  • @YuvalAdam 错误现已解决!但在部署构建后我得到:Application Error

标签: python django git heroku heroku-toolbelt


【解决方案1】:

现在终于解决了,但是很难理解将预建的Django项目部署到Heroku的指令,我想在这里解释一下:

假设您的目录结构如下所示:

Testing
|_djangoApp
|_Testing
| |-- __init__.py
| |-- settings.py
| |-- urls.py
| |-- utils.py
| |-- wsgi.py
|
|_manage.py
|_requirements.txt
|_README.md

您可以在命令行中运行:python manage.py runserver

但是Heroku 需要Procfile 而不是ProcFile.txt 来运行你的django 项目。

现在,在您拥有 requirements.txt 的同一目录中添加 Procfile 并使用以下语法进行编辑(记住空格)

web: gunicorn Testing.wsgi -b 0.0.0.0:$PORT

基本requirements.txt 应包含:

Django==1.4
simplejson==2.2.1
lxml==2.3.5
pyyaml==3.10
fabric==1.4.3
unittest2==0.5.1
mock==1.0b1
psycopg2==2.4.5
dj-database-url==0.2.1
gunicorn==0.14.6
gevent==0.13.7
greenlet==0.4.0
boto==2.5.2
django-storages==1.1.5
django-ses==0.4.1 #remove this if you don't use Amazon SES
redis==2.7.1
django-celery==3.0.11
South==0.7.6

现在将其推送到您的heroku 帐户。

还有一点,如果你想将Bitbucket repo 推送到Heroku,那么你可以使用codeship.io 作为中间工具。

每当您从本地存储库推送时,新版本都会自动部署到 Heroku 环境。

【讨论】:

  • 这正是我在评论中问你的。
  • 即使按照您的指示,我仍然收到错误消息。我正在遵循的过程是 1) 从 github 克隆我的项目。 2)使用manage.py进入目录并使用web: gunicorn fbnetworkgraph.wsgi -b 0.0.0.0:$PORT.3创建Procfile)使用pip freeze > requirements.txt.4创建requirements.txt)将目录更改为上一级并运行heroku create。 5) 运行git push heroku master
猜你喜欢
  • 2012-01-11
  • 2014-11-09
  • 2012-12-05
  • 2014-01-22
  • 1970-01-01
  • 2015-07-18
  • 2013-08-23
  • 2013-11-28
  • 1970-01-01
相关资源
最近更新 更多