2013-02-18 9 views
17

ich versucht mit:git push Heroku Master: Heroku Push abgelehnt, keine Cedar-unterstützte App erkannt

$ git push heroku master  
----- 

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

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

die einzig mögliche Antwort, die ich gefunden haben vorgeschlagen, dass, wenn Sie einen Unterstrich in Ihrem App-Namen es, könnte dieses Problem verursachen. Ich hatte ein "-" und ich entfernte es, aber ich kann diese Arbeit immer noch nicht bekommen.

Das Folgende ist in meiner Requirements.txt, die unter meinem Src-Ordner sitzt, neben setup.py und 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 
+0

Welche Plattform Web App drücken Sie? Schienen oder PHP oder etwas anderes? –

+0

Ich benutze Django. –

+1

Sie benötigen die Datei "requirements.txt" im Stammverzeichnis des Projekts! – albertogg

Antwort

11

Sie müssen wahrscheinlich eine requirements.txt Datei hinzufügen. Die Python-App Dokumente überprüfen

+0

Hallo, nur neugierig. Wie sagst du es war Python App? –

+0

Das endete mein Problem. Misspelled Anforderungen.txt. – andyzinsser

33

Gerade hatte dieses Problem auch. Ich habe folgendes es zu lösen: (vorausgesetzt, Sie im Projektverzeichnis sind)

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

Eine etwas beteiligt Lösung eine neue Anwendung zu erstellen, aber zumindest funktioniert es. Ich hoffe, das hilft!

+5

Dies war das einzige, was für mich funktionierte, nachdem ich viele andere Lösungen ausprobiert hatte. – kkampen

+0

Dieser arbeitete für mich. (Ich redigierte die Antwort, um die Markierung -m zu enthalten FYI) – Gabriel

+0

Seltsam, dieses funktionierte nicht für mich. – theblang

8

Ich hatte ein ähnliches Problem und in meinem Fall war, weil meine Apps außerhalb meines Projektordners waren. Heroku erwartet diese Struktur zu haben:

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

Für mich genügte nur requirements.txt, danke! – Carlos

+0

Das sieht nicht richtig aus; Django hat normalerweise die App-Ordner (app1, app2 in Ihrem Beispiel) auf derselben Ebene wie manage.py. –

+0

Ich bin sicher, dass ich recht habe, also habe ich diese Antwort bearbeitet. –

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

Dieses auch für mich gearbeitet!

+0

Das funktionierte für mich mit dem zusätzlichen Schritt 'heroku config: set DISABLE_COLLECTSTATIC = 1'. – jfkoehler

2

Mein dummer Fehler war, requirements.txt als das fehlerhafte requirments.txt zu verwerfen. Ich brauchte nicht setup.py.

Zusätzlich muss ich tatsächlich das Git Repository in Github speichern. Es war nicht genug, es lokal zu erstellen.

+1

+1: Ich habe jetzt genau dasselbe gemacht, und diese Antwort hat mich dazu gebracht, den Dateinamen zu überprüfen. Doh :-) – Arve

+1

Das ist seltsam - Sie sollten es nicht nach Github schieben müssen, von dem, was ich verstehe. –

2

Für jeden, der seinen Git-Verlauf löscht, damit das funktioniert ... Der einzige Grund dafür ist, dass das erste Commit im neuen Repository die notwendigen Dateien enthält, damit Heroku Ihre App erkennt.

Ich stieß auf dieses Problem, weil ich die Procfile und requirements.txt für meine App hinzugefügt und versucht, Heroku zu schieben, bevor sie tatsächlich zu begehen. Als ich nach Heroku gedrängt habe, habe ich diese Dateien nicht gedrängt!

Machen Sie ein Commit mit allen notwendigen Dateien und dann Push sollte dieses Problem lösen, und ist erheblich vorzuziehen, Ihre gesamte Git-Geschichte zu löschen.

Hoffe, das hilft!

+0

Nein, ich hatte dieses Problem und ich hatte das Repo von Heroku gezogen und dann irgendwo einen einzelnen Charakterwechsel vorgenommen und beim Drücken kommt der Fehler. Das Erstellen einer neuen Heroku App-Lösung funktioniert jedoch. –

1

Heroku benötigt eine Datei mit den Anforderungen.txt, mit der Heroku wissen kann, welche Abhängigkeiten für Ihr Django-Projekt installiert werden müssen. Sie können ein Tool verwenden, um Ihre requirements.txt-Datei zu generieren.

Run in der Befehlszeile

pip freeze > requirements.txt

die eine Anforderung schaffen.txt-Datei mit allen installierten Paketen, wie Django, django-Registrierung, etc ...

Dieser Link kann hilfreich sein: http://tutorial.djangogirls.org/deploy/README.html

1

Meine Situation ist, dass meine Codes nötig sind, um beide zu sparen auf Github und Heroku Wenn ich die folgende Lösung verwende, löscht rm -rf .git die Verbindung zu meinem Github, daher kann ich meine Codes nicht nach Github schieben.

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

Stattdessen meine Lösung ist wie folgt:

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

Sie benötigen die requirement.txt Datei hinzufügen zu git und drücken dann wird es von sicher zu arbeiten.

2

Ich habe lange mit diesem Problem gekämpft und die einzige Lösung war Vincent van Leeuwen's, aber ich habe nicht verstanden, warum. Das Problem stellte sich heraus, dass ich von einem anderen lokalen Zweig als dem Master arbeitete. Also, wenn ich

läuft
git push heroku master 

Ich schob tatsächlich

(local) master->(heroku) master 

und nicht

(local) current_branch -> (heroku) master 

als ich gedacht. Dies scheiterte, weil mein lokaler Hauptzweig nicht requirements.txt hat, procfile usw.

Die Lösung lautet:

git push heroku current_branch:master 

Siehe heroku docs für mehr.

Hoffe, das hilft.

+0

Das half und löste mein Problem. Ich danke dir sehr! Sollte oben sein, bevor Leute ihre gesamten Git Histories löschen –

0

Alle oben genannten Lösungen erwähnen nicht, dass was wichtig ist, wo ist .GIT initialisiert. Wenn Sie versuchen, auf Heroku zu drücken, sollten Sie es aus dem Verzeichnis heraus tun, in dem Sie den Git selbst initialisiert haben. Auch das Verzeichnis, das Sie sollten hochladen derjenige sein, in dem Sie Dateien wie

  • requirements.txt, procfile, virtualenv, manage.py und .gitignore

    usw. Kurz Heroku muss alle Dateien Um den Typ des Projekts zu verstehen, das Sie hochladen möchten, sollten diese Dateien im Stammverzeichnis zugänglich sein.

Verwandte Themen