2012-04-30 24 views
8

Estoy tratando de obtener una aplicación Flask "hello world" trabajando en un servidor compartido Dreamhost, siguiendo el instructions on their wiki, pero no estoy teniendo suerte.No se puede ejecutar el Flask utilizando Passenger WSGI en alojamiento compartido Dreamhost

Mi solicitud frasco es el "hola mundo" uno de la Flask quickstart guide:

from flask import Flask 
app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello World!' 

if __name__ == '__main__': 
    app.run() 

¿Qué tengo en un archivo llamado "hello.py" en una carpeta llamada mysite, según el DH wiki instrucciones. Mi archivo passenger_wsgi.py es:

import sys, os 
INTERP = os.path.join(os.environ['HOME'], 'flask_env', 'bin', 'python') 
if sys.executable != INTERP: 
    os.execl(INTERP, INTERP, *sys.argv) 
sys.path.append(os.getcwd()) 
from mysite import hello as application 

He tratado de ejecutar los comandos en una consola de Python, y la última línea de importación ha fallado hasta que he añadido el archivo en el directorio __init__.py mysite.

Cuando intento acceder al sitio web, obtengo un error de 500 (y desafortunadamente no aparece nada en los registros, a menos que estén en registros que no puedo acceder porque este es un servidor compartido ...).

Como esta es la configuración más básica (es decir, copiada y pegada de una wiki), no puedo evitar sentir que me falta algo realmente simple. ¿O quizás esto no es posible en un servidor compartido?

+0

¿Has puesto el hashbang? "tiene #!/usr/bin/python en la primera línea del archivo" –

+0

Acabo de probar su sugerencia, por desgracia no tuvo ningún efecto ... –

Respuesta

17

¿Responder a mi propia pregunta significa que estoy hablando solo?

De todos modos, parece que lo he corregido. En lugar de encontrar un buen mensaje de error útil, volví a realizar todos los pasos de a uno por vez, y resulta que fue un error de importación en el archivo passenger_wsgi.py. A medida que la aplicación se encuentra en el subdirectorio mysite, la línea:

from mysite import hello as application 

debería haber sido (y, de hecho, ahora es):

from mysite.hello import app as application 

y funciona. Lo cual es bueno.

+3

+1 ... y no, solo significa que usted es ayudando a hacer este sitio un poco mejor. ¡Gracias por eso! –

+0

Me ayudó, ¡gracias! – karlgrz

+1

Esto funcionó para mí. Solo tenía que agregar el archivo ____ init __. Py__ al directorio de mysite para que python tratara el directorio como si tuviera paquetes. http://docs.python.org/2/tutorial/modules.html#packages http://stackoverflow.com/questions/448271/what-is-init-py-for – ecounysis

Cuestiones relacionadas