17

我尝试运行:

$ 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
4

12 回答 12

33

刚刚也有这个问题。我做了以下解决它:(假设你在项目目录中)

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

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

于 2013-06-21T13:35:10.763 回答
13

您可能需要添加一个requirements.txt文件。检查 python 应用程序文档

于 2013-02-18T15:40:12.010 回答
8

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

Procfile
requirements.txt
static/
myproject/
  manage.py
  app1/
  app2/
  ..
于 2013-12-04T21:43:43.087 回答
3
rm -rf .git
git init 
git add .
git commit -m "First commit"
heroku create --stack cedar
git push heroku master

这对我也有用!

于 2014-05-24T15:04:04.353 回答
2

我的愚蠢错误是拼写requirements.txt错误requirments.txt。我不需要setup.py

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

于 2014-06-18T17:16:56.933 回答
2

对于每个人都删除他们的 Git 历史以使其工作......唯一有效的原因是因为新存储库中的初始提交包含 Heroku 识别您的应用程序所需的文件。

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

使用所有必要的文件进行提交然后推送应该可以解决这个问题,并且比删除整个 Git 历史记录要好得多。

希望这可以帮助!

于 2014-11-28T16:01:02.353 回答
2

由于 Django 是一个 python 应用程序,因此您需要拥有requirements.txtsetup.py位于 repo 的根目录中,而不是 src 子目录。请参阅https://github.com/heroku/heroku-buildpack-python/blob/master/bin/detect

于 2013-02-18T19:28:20.547 回答
2

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

git push heroku master

我实际上是在推动

(local) master->(heroku) master

并不是

(local) current_branch -> (heroku) master

如我所愿。这失败了,因为我的本地 master 分支没有 requirements.txt、Procfile 等。

解决方案是:

git push heroku current_branch:master

有关更多信息,请参阅heroku 文档

希望这可以帮助。

于 2016-01-08T19:46:01.933 回答
1

Heroku 需要一个 requirements.txt 文件,它可以帮助 Heroku 了解需要为您的 Django 项目安装哪些依赖项。您可以使用工具生成您的 requirements.txt 文件。

在命令行中运行

pip freeze > requirements.txt

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

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

于 2014-12-16T09:09:55.620 回答
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
于 2015-03-22T19:56:54.343 回答
0

上述所有解决方案都没有提到重要的是您的 .git 在哪里初始化。实际上,当您尝试推送 heroku 时,您应该从您初始化 git 本身的目录中执行此操作。此外,您要上传的目录应该是您拥有类似文件的目录

  • requirements.txt、Procfile、virtualenv、manage.py 和 .gitignore

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

于 2018-02-16T03:33:20.687 回答
-1

您需要将 requirements.txt 文件添加到 git,然后推送它肯定会起作用。

于 2015-11-25T16:01:33.857 回答