git push heroku master:Heroku推送被拒绝,没有检测到Cedar支持的应用程序

时间:2013-02-18 15:37:26

标签: django heroku github

我试过跑:

$ git push heroku master    
-----

Total 7121 (delta 2300), reused 6879 (delta 2228)
 !     Heroku push rejected, no Cedar-supported app detected

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

我发现的唯一可能的答案表明,如果您的应用名称中有下划线,则可能会导致此问题。我有一个“ - ”,我把它删除了,但我仍然无法完成这项工作。

以下是我的requirements.txt,它位于我的src文件夹下,与settings.py和manage.py一起。

Django==1.4.3
South==0.7.6
distribute==0.6.31
ipython==0.13.1
wsgiref==0.1.2
dj-database-url==0.2.0

12 个答案:

答案 0 :(得分:33)

也遇到了这个问题。我做了以下工作来解决它:(假设你在项目目录中)

rm -rf .git
git init 
git add .
git commit -m "First commit"
heroku create --stack cedar
git push heroku master

创建新应用程序的一个稍微复杂的解决方案,但至少它可行。希望有所帮助!

答案 1 :(得分:12)

您可能需要添加requirements.txt文件。检查python app docs

答案 2 :(得分:8)

我有一个类似的问题,在我的情况下是因为我的应用程序不在我的项目文件夹中。 Heroku希望有这样的结构:

Procfile
requirements.txt
static/
myproject/
  manage.py
  app1/
  app2/
  ..

答案 3 :(得分:3)

rm -rf .git
git init 
git add .
git commit -m "First commit"
heroku create --stack cedar
git push heroku master

这也适合我!

答案 4 :(得分:2)

由于Django是一个python应用程序,你需要让requirements.txtsetup.py位于你的repo的根目录而不是src子目录。见https://github.com/heroku/heroku-buildpack-python/blob/master/bin/detect

答案 5 :(得分:2)

我的愚蠢错误是将requirements.txt误导为错误的requirments.txt。我不需要setup.py

此外,我需要在Github中实际存储git存储库。仅仅在本地创建它是不够的。

答案 6 :(得分:2)

对于每个人都删除他们的Git历史记录来完成这项工作......唯一可行的原因是因为新存储库中的初始提交包含Heroku识别您的应用程序所需的文件。

我遇到了这个问题,因为我为我的应用添加了Procfilerequirements.txt,并尝试在实际提交之前推送到Heroku。所以,当我推到Heroku时,我没有推动那些文件!

使用所有必需的文件进行提交并然后推送应解决此问题,并且非常希望删除整个Git历史记录。

希望这有帮助!

答案 7 :(得分:2)

我在这个问题上挣扎了很长时间,唯一的解决方案是Vincent van Leeuwen's,但我不明白为什么。问题原来是我在除了主人以外的当地分支机构工作。所以当我跑步时

git push heroku master

我实际上正在推动

(local) master->(heroku) master

而不是

(local) current_branch -> (heroku) master
按照我的意图。这失败了,因为我的本地主分支没有requirements.txt,Procfile等。

解决方案是:

git push heroku current_branch:master

有关详情,请参阅heroku docs

希望这有帮助。

答案 8 :(得分:1)

Heroku需要一个requirements.txt文件,这有助于Heroku知道需要为Django项目安装哪些依赖项。您可以使用工具生成您的requirements.txt文件。

在命令行中运行

pip freeze > requirements.txt

将创建一个包含所有已安装软件包的requirements.txt文件,例如Django,django-registration等...

此链接可能会有所帮助:http://tutorial.djangogirls.org/deploy/README.html

答案 9 :(得分:1)

我的情况是我的代码需要保存在Github和Heroku上,如果我使用以下解决方案,rm -rf .git将删除与我的Github的连接,因此我无法将我的代码推送到Github。

rm -rf .git
git init 
git add .
git commit -m "First commit"
heroku create --stack cedar-14
git push heroku master

相反,我的解决方案如下:

$ heroku create
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
$ git push heroku master

答案 10 :(得分:0)

你需要将requirement.txt文件添加到git然后推送它肯定会工作。

答案 11 :(得分:0)

以上所有解决方案都没有提到重要的是你的.git初始化的地方。实际上当你尝试推送heroku时,你应该从你初始化git本身的目录中进行。  您上传的目录也应该是您拥有

等文件的目录
  • requirements.txt,Procfile,virtualenv,manage.py和.gitignore

    等。 简而言之,Heroku需要所有文件来理解您要上传的项目类型,因此这些文件应该可以在根目录中访问。