2012-04-17 13 views
5

Ich bekomme diesen Fehler ([Errno 2] keine solche Datei oder Verzeichnis), nachdem ich den Repo zu Heroku Master schieben. Hier sind meine Protokolle.Django Deploy mit Heroku - [Errno 2] Keine solche Datei oder Verzeichnis

2012-04-17T18:24:53+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2]  No such file or directory 

2012-04-17T18:24:54+00:00 heroku[web.1]: Process exited with status 2 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from starting to crashed 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from crashed to created 

2012-04-17T18:24:54+00:00 heroku[web.1]: State changed from created to starting 

2012-04-17T18:24:57+00:00 heroku[web.1]: Starting process with command python /test/project/manage.py runserver 0.0.0.0:4473 --noreload 2012-04-17T18:24:57+00:00 app[web.1]: python: can't open file '/test/project/manage.py': [Errno 2] No such file or directory 

Mein procfile sieht wie folgt aus:

web: python /test/project/manage.py runserver 0.0.0.0:$PORT --noreload 

Ich weiß nicht, warum es die Datei nicht öffnen können. Es öffnet sich gut, wenn ich meinen Entwicklungsserver verwende. Irgendwelche Ideen? Danke fürs Lesen.

+0

Sind Sie drücken den Master-Zweig Ihres lokalen Repo? – ryudice

+0

Ich denke schon.Wenn ich git Zweig mache, ist das einzige, was ich sehe, * Master – Zach

Antwort

11

Ihre aktuellen Einstellungen in Ihrem procfile verweisen auf einen absoluten Pfad '/test/project/manage.py' das gibt es auf Heroku nicht. "/ Test /" ist der Stamm der Instanz, in der Sie ausgeführt werden, und ist nicht korrekt. Sie sollten zuerst das der relative Pfad ändern, das ist wahrscheinlich so etwas wie:

web: python project/manage.py runserver 0.0.0.0:$PORT --noreload 

Wenn dies nicht funktioniert, kann die Lage des Projekts erkunden, indem Sie:

heroku run bash 

Dies sollte Sie in '/ App' von hier können Sie sehen, was der Weg, um Ihr Projekt zu starten ist.

Da Ihr ursprünglicher Push den Prozess wahrscheinlich nicht gestartet hat, müssen Sie wahrscheinlich einen Webprozess skalieren. Anschließend können Sie tun dies mit:

heroku scale web=1 
+0

Dies funktionierte für mich auch auf einer web.py-Anwendung auf Heroku – JoshOiknine

0

können Sie an heroku eine ls anhängen, um die tatsächliche Struktur des Dateisystems herauszufinden.

> heroku run ls/
Running ls/attached to terminal... up, run.1 
app dev home lib64  mnt sbin usr 
bin etc lib lost+found proc tmp var 

Es könnte der Fall sein, dass sie Ihre App innerhalb eines app Verzeichnis

+0

Es ist das gleiche für mich. – Zach

+0

daher .. möchten Sie vielleicht tun 'web: python /app/test/project/manage.py runserver 0.0.0.0:$PORT --noreload' stattdessen – Doboy

0

Versuchen Sie es mit os.path wickeln die Elemente des Wegs zu verbinden., Btw haben Sie es versuchen, die procfile zu ändern von Arbeiter zu lesen ? python hellodjango/manage.py

bearbeiten später:

Versuchen Sie, diese drei Befehle ausführen, um Heroku Master zu machen:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git push Heroku Master

nun eine einfache 'Hallo Welt' testen:

$ curl mempy-demo.herokuapp.com 
+0

ja ich habe es versucht. – Zach

+0

Ich update meine Antwort., Es muss jetzt funktionieren, indem Heroku Master setzen. –

0

Sie könnten etwas tun um die Umgebungsvariablen zu ändern (zB in Ihrer wsgi.py Datei hinzufügen, wenn es das ist, wo der Fehler stammt):

os.environ["DJANGO_SETTINGS_MODULE"] = "myblog.settings"                 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myblog.settings") 
Verwandte Themen