【问题标题】:git push heroku master: Heroku push rejected, no Cedar-supported app detectedgit push heroku master:Heroku push 被拒绝,没有检测到 Cedar 支持的应用程序
【发布时间】:2013-02-03 02:16:41
【问题描述】:

我试过跑步:

$ 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

【问题讨论】:

  • 你在推哪个平台的网络应用? Rails 或 PHP 或其他?
  • 你需要项目根目录下的 requirements.txt 文件!

标签: django heroku github


【解决方案1】:

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

【讨论】:

  • 嗨,只是好奇。你怎么说它是 Python 应用程序?
  • 这最终成为我的问题。拼写错误的 requirements.txt。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 在尝试了许多其他解决方案之后,这是唯一对我有用的方法。
    • 这个对我有用。 (我编辑了答案以包含 -m 标志仅供参考)
    • 注意:此解决方案将删除您的 git 历史记录。仅当您不介意丢失它时才这样做。
    【解决方案4】:

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

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

    【讨论】:

    • 这看起来不对; Django 通常具有与 manage.py 相同级别的应用程序文件夹(在您的示例中为 app1、app2)。
    【解决方案5】:
    rm -rf .git
    git init 
    git add .
    git commit -m "First commit"
    heroku create --stack cedar
    git push heroku master
    

    这对我也有用!

    【讨论】:

    • 通过运行heroku config:set DISABLE_COLLECTSTATIC=1 的附加步骤对我有用。
    【解决方案6】:

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

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

    【讨论】:

    • +1 :我现在做了完全相同的事情,这个答案让我仔细检查了文件名。多哈 :-)
    • 这很奇怪 - 据我了解,您不需要将其推送到 Github。
    【解决方案7】:

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

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

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

    希望这会有所帮助!

    【讨论】:

    • 不,我遇到了这个问题,我从 Heroku 中提取了 repo,然后在某处进行了单个字符更改,当推送时,错误出现了。不过,创建一个新的 Heroku 应用解决方案是可行的。
    【解决方案8】:

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

    在命令行中运行

    pip freeze > requirements.txt

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

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

    【讨论】:

      【解决方案9】:

      我的情况是我的代码需要保存在 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】:

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

        【讨论】:

          【解决方案11】:

          我在这个问题上挣扎了很长时间,唯一的解决方案是Vincent van Leeuwen's,但我不明白为什么。问题原来是我在 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 docs 了解更多信息。

          希望这会有所帮助。

          【讨论】:

          • 这帮助并解决了我的问题。太感谢了!在人们删除他们的整个 Git 历史记录之前应该在上面
          【解决方案12】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2014-09-23
            • 2013-03-08
            • 2013-09-07
            • 1970-01-01
            • 2016-06-02
            • 1970-01-01
            • 2012-03-07
            • 1970-01-01
            • 2012-01-11
            相关资源
            最近更新 更多