2012-04-17 9 views
5

Viene visualizzato questo errore ([Errno 2] Nessun file o directory di questo tipo) dopo aver premuto il repository su heroku master. Ecco i miei log.Django Deploy using Heroku - [Errno 2] Nessun file o directory di questo tipo

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 

mio Procfile è simile al seguente:

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

Non so il motivo per cui non è possibile aprire il file. Si apre bene quando sto usando il mio server di sviluppo. Qualche idea? Grazie per aver letto.

+0

Are stai spingendo il ramo principale del tuo repository locale? – ryudice

+0

Penso di sì.Se faccio git branch l'unica cosa che vedo è * master – Zach

risposta

11

Il tuo attuale configurazione nel vostro Procfile fa riferimento a un percorso assoluto '/test/project/manage.py' quello non esiste su Heroku. Il/test/è la radice dell'istanza in cui stai eseguendo e non è corretta. Si dovrebbe prima cambiare questo sia il percorso relativo, questo è probabile che qualcosa di simile:

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

Se questo non funziona si può esplorare l'ubicazione del progetto eseguendo:

heroku run bash 

Questo dovrebbe porre tu in '/ app' da qui puoi vedere qual è il percorso per iniziare il tuo progetto.

Poiché probabilmente il tuo push iniziale non è riuscito ad avviare il processo, probabilmente dovrai ridimensionare un processo web. È quindi possibile fare questo con:

heroku scale web=1 
+0

Questo ha funzionato anche per me su un'applicazione web.py su Heroku – JoshOiknine

0

è possibile collegare un ls a heroku per scoprire la struttura effettiva del file system.

> 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 

Potrebbe essere il caso che avvolgono la vostra applicazione all'interno di una directory app

+0

È lo stesso per me. – Zach

+0

quindi .. si potrebbe voler fare 'web: python /app/test/project/manage.py runserver 0.0.0.0:$PORT --noreload' invece – Doboy

0

Provare a utilizzare os.path unire gli elementi del percorso., Btw hanno lo provate a cambiare il ProcFile di leggere da operaio ? python hellodjango/manage.py

Edit tardi:

Provare a eseguire questo tre comandi al fine di rendere Heroku maestro:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git maestro spinta Heroku

Ora il test di un semplice 'Ciao Mondo':

$ curl mempy-demo.herokuapp.com 
+0

sì l'ho provato. – Zach

+0

Aggiorno la mia risposta. Deve funzionare ora, mettendo il suo maestro heroku. –

0

Si potrebbe fare qualcosa di simile per modificare le variabili di ambiente (ad esempio, aggiungere nel file wsgi.py se è lì che ha origine l'errore):

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