2012-04-30 11 views
8

Sto cercando di ottenere un'applicazione "ciao mondo" di Flask che funziona su un server condiviso Dreamhost, seguendo lo instructions on their wiki, ma non sto avendo fortuna.Impossibile avviare Flask usando Passenger WSGI su hosting condiviso Dreamhost

mia applicazione Flask è il "ciao a tutti" uno dalla Flask quickstart guide:

from flask import Flask 
app = Flask(__name__) 

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

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

che ho in un file chiamato "hello.py" in una cartella denominata mysite, come da wiki DH Istruzioni. Il mio file passenger_wsgi.py è:

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 

Ho provato a fare funzionare i comandi in una console Python, e ultima linea di importazione fallito fino a quando ho aggiunto il file __init__.py nella directory mysite.

Quando provo ad accedere al sito ho un errore di 500 (e nulla nei log purtroppo, a meno che non siano nei registri a cui non riesco ad accedere dato che si tratta di un server condiviso ...).

Poiché questo è il più basilare dei setup (ad esempio, copiato e incollato da una wiki), non posso fare a meno di sentire che mi manca qualcosa di veramente semplice. O forse questo non è possibile su un server condiviso?

+0

Hai inserito l'hashbang? "ho #!/usr/bin/python nella primissima riga del file" –

+0

Ho appena provato il tuo suggerimento, purtroppo non ha avuto alcun effetto ... –

risposta

17

Rispondere alla mia domanda significa che sto parlando a me stesso?

In ogni caso, mi sembra di averlo risolto. Anziché trovare un messaggio di errore utile, ho ripreso tutti i passaggi uno alla volta e si è verificato un errore di importazione nel file passenger_wsgi.py. Poiché l'applicazione è in mysite sottodirectory, la linea:

from mysite import hello as application 

avrebbe dovuto essere (e in effetti, ora è):

from mysite.hello import app as application 

e funziona. Che è bello

+3

+1 ... e no, significa solo che sei aiutando a rendere questo sito un po 'migliore. Grazie per quello! –

+0

Mi ha aiutato, grazie! – karlgrz

+1

Questo ha funzionato per me. Ho appena dovuto aggiungere il file ____ init __. Py__ alla directory mysite in modo che python considerasse la directory come contenente i pacchetti. http://docs.python.org/2/tutorial/modules.html#packages http://stackoverflow.com/questions/448271/what-is-init-py-for – ecounysis

Problemi correlati