2012-04-17 14 views
5

Aparece este error ([Errno 2] No existe tal archivo o directorio) después de enviar el repo al maestro heroku. Aquí están mis registros.Django Deploy usando Heroku - [Errno 2] No existe ningún archivo o directorio

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 

Mi Procfile tiene el siguiente aspecto:

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

No sé por qué no puede abrir el archivo. Se abre bien cuando estoy usando mi servidor de desarrollo. ¿Algunas ideas? Gracias por leer.

+0

Son ¿Estás presionando la rama principal de tu repositorio local? – ryudice

+0

Creo que sí.Si hago git branch lo único que veo es * master – Zach

Respuesta

11

su configuración actual en su Procfile hace referencia a una ruta absoluta '/test/project/manage.py' eso no existe en Heroku. La '/ prueba/es la raíz de la instancia en la que se está ejecutando y es incorrecta. Primero debe cambiar esto es la ruta relativa, esto es probablemente algo como:

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

Si esto no funciona, se puede explorar la ubicación del proyecto mediante la ejecución:

heroku run bash 

Esto debería colocar En "/ app" desde aquí puede ver cuál es la ruta para comenzar su proyecto.

Dado que es probable que su impulso inicial no haya podido iniciar el proceso, es probable que necesite escalar un proceso web. A continuación, puede hacer esto con:

heroku scale web=1 
+0

Esto funcionó para mí también en una aplicación web.py en Heroku – JoshOiknine

0

puede adjuntar un ls a heroku para descubrir la estructura real del sistema de archivos.

> 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 

Podría darse el caso de que se envuelven su aplicación dentro de un directorio de app

+0

. Es lo mismo para mí. – Zach

+0

por lo tanto ... es posible que desee hacer 'web: python /app/test/project/manage.py runserver 0.0.0.0:$PORT --noreload' en su lugar – Doboy

0

Trate de usar os.path a unirse a los elementos de la ruta., Por cierto que lo intenta cambiar el ProcFile leer de trabajador ? python hellodjango/manage.py

Editar más tarde:

intenta ejecutar esto tres comandos con el fin de hacer heroku principal:

  • pip install -r ./requirements.txt

  • foreman start

  • heroku create mempy-demo --stac=cedar

  • git principal empuje heroku

Ahora probar un simple 'Hola Mundo':

$ curl mempy-demo.herokuapp.com 
+0

sí lo he intentado. – Zach

+0

Actualizo mi respuesta., Tiene que funcionar ahora, al poner heroku master. –

0

Se podría hacer algo como esto para cambiar las variables de entorno (por ejemplo, añadir que en su archivo wsgi.py si es allí donde se origina el error):

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