2012-04-17 3 views
5

Otrzymuję ten błąd ([Errno 2] Brak takiego pliku lub katalogu) po tym, jak przepchnę repo do mistrza heroku. Oto moje dzienniki.Wdrażanie Django za pomocą Heroku - [Errno 2] Brak takiego pliku lub katalogu

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 

My Procfile wygląda następująco:

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

Nie wiem, dlaczego nie można otworzyć pliku. Otwiera się dobrze, gdy używam mojego serwera programistycznego. Jakieś pomysły? Dziękuje za przeczytanie.

+0

Czy naciskasz główny oddział lokalnego repo? – ryudice

+0

Myślę, że tak.Jeśli wykonuję gałąź git, jedyne co widzę to * master – Zach

Odpowiedz

11

Twoje aktualne ustawienia w swojej Procfile odwołuje ścieżki bezwzględnej '/test/project/manage.py' to nie istnieje na Heroku. '/ Test/jest katalogiem głównym uruchomionej instancji i jest niepoprawny. należy najpierw zmienić to być ścieżka względna, to prawdopodobnie coś takiego:

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

Jeśli to nie zadziała można zbadać lokalizację projektu przez wykonanie:

heroku run bash 

ten powinien umieścić Ty w "/ app" stąd możesz zobaczyć, jaka jest ścieżka do rozpoczęcia twojego projektu.

Ponieważ początkowe wypychanie prawdopodobnie nie rozpoczęło się procesu, prawdopodobnie trzeba będzie skalować proces WWW. Następnie można zrobić z:

heroku scale web=1 
+0

To działało również dla mnie w aplikacji web.py na Heroku – JoshOiknine

0

można dołączyć do heroku ls, aby poznać faktyczną strukturę systemu plików.

> 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 

To może być przypadek, że owinąć aplikację wewnątrz katalogu app

+0

To jest dla mnie takie samo. – Zach

+0

dlatego .. możesz chcieć zrobić 'web: python /app/test/project/manage.py runserver 0.0.0.0:$PORT --noreload' zamiast – Doboy

0

Spróbuj użyć os.path dołączyć elementy ścieżki., Btw mam spróbować zmienić ProcFile czytać od pracownika ? python hellodjango/manage.py

Edit później:

Spróbuj uruchomić to trzy polecenia w celu uczynienia Heroku mistrz:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git mistrz Push Heroku

teraz przetestować prosty 'Hello World':

$ curl mempy-demo.herokuapp.com 
+0

tak, próbowałem go. – Zach

+0

Uaktualniam swoją odpowiedź. Teraz musi działać, umieszczając mistrza heroku. –

0

Można zrobić coś takiego, aby zmienić zmienne środowiskowe (np dodać go w pliku wsgi.py jeśli to gdzie powstaje błąd):

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