2012-01-19 15 views
7

seguido al "Introducción a Django en heroku ceadar /" guía a la letra y finalmente logró resolver algunos problemas en el despliegue de aplicacionesDjango no se ejecuta en heroku

Successfully installed django psycopg2 
Cleaning up... 
Discovering process types 
Procfile declares types -> (none) 
Compiled slug size is 8.0MB 
Launching... done, v4 
http://<watever>.herokuapp.com deployed to Heroku 

y la guía dice que el servidor web debe ser arriba. pero heroku ps no muestra procesos, y obviamente la página no se carga.

final del registro heroku:

2012-01-19T10:28:29+00:00 heroku[web.1]: State changed from created to down 
2012-01-19T10:28:30+00:00 heroku[web.1]: State changed from down to created 
2012-01-19T10:28:32+00:00 heroku[slugc]: Slug compilation finished 
2012-01-19T10:30:32+00:00 heroku[router]: Error H99 (Platform error) -> GET <watever> 
.herokuapp.com/ dyno= queue= wait= service= status=503 bytes= 


(venv) C:\Python27\facebook\venv\myapp>heroku ps 
Process State Command 
------- ----- ------- 

¿Debo iniciar el servidor web de forma explícita? ¿Estoy haciendo algo mal?

+0

¿Has declarado un proceso web en tu archivo de proceso? por ejemplo: web: gunicorn_django -b 0.0.0.0:$PORT -w 9 -k gevent -max-requests 250 --preload settings –

Respuesta

0

La clave es aquí:

Procfile declares types -> (none) 

Heroku no sabe cómo ejecutar su aplicación. Supongo que python hellodjango/manage.py runserver funciona localmente para usted? Si es así, Heroku debería ser capaz de recoger esto.

También compruebe que tiene un requirements.txt en la raíz del repositorio, y un settings.py en uno de los subdirectorios de su proyecto.

+0

El runserver funciona bien localmente. y los requisitos.txt están presentes y settings.py también. El ProcFile está en la raíz del repositorio y tiene la línea: web: python madfb/manage.py runserver –

+0

levanta un ticket de soporte –

+1

'Procfile', no' ProcFile'. – yfeldblum

8

El Procfile que utilizo para mi django/heroku ejemplo es el siguiente:

web: python hellodjango/manage.py runserver "0.0.0.0:$PORT" 

Como se ha mencionado, si usted no tiene Procfile y está usando el servidor web por defecto, será esencialmente hacer lo anterior - pero trata de ser explícito. Puede intente ejecutarlo desde la consola heroku lugar, para ver lo que (si los hay) que obtiene errores:

heroku run python hellodjango/manage.py runserver 
+1

El archivo de proceso no era necesario. Heroku detecta automáticamente que una aplicación django la inicia para el servidor de desarrollo predeterminado. –

+0

Como dije ... si no tiene Procfile y está usando el servidor web predeterminado, esencialmente hará lo anterior. Pero ya que tenías problemas, sugerí que lo hicieras explícitamente. –

+0

¿Cuál es el servidor predeterminado? ¿Hay algo de malo en usarlo? –

3

Me acabo de encontrar con el mismo problema, aunque no sé si fue por la misma razón o no.

Mientras se ejecuta este comando desde el tutorial:

django-admin.py hellodjango startproject.

Cambié el nombre de la aplicación a otra cosa (no solo en este comando, por supuesto), pero omití el '.' al final. Esto causó que el script creara una aplicación dentro de un directorio con el mismo nombre bastante bien en el directorio en el que estaba y que provocó que el script del lado del servidor de Heroku no detectara la aplicación como una aplicación de Django.

3

Encontré este problema también. Asegúrese de que su Procfile parece correcto mediante la ejecución ...

$heroku run bash 

para abrir un terminal con acceso a heroku. Y luego ...

$cat Procfile 

Esto le mostrará lo que está realmente en su archivo de proceso. La primera línea (en mi archivo local) en la mía no se leía por alguna razón. Luego, agregué un "}" a mi archivo. Estaba creando mi archivo en TextEdit en una Mac, debería haber estado usando SublimeText u otro editor de texto.También puede llamar al

$echo "web: gunicorn hello:app" >> Procfile 

O lo que sea que quiera que diga su archivo de proceso. Esto cambiará tu archivo de Procfile a lo que sea que hagas eco.

+0

Este cambio de Procfile pero la aplicación se implementa por defecto desde la rama principal donde no se aplican estos cambios. Ejecutar: registros heroku y no se puede encontrar la configuración de Procfile utilizada. – abrasadera

Cuestiones relacionadas