2010-09-08 14 views
9

Ich versuche eine web.py Anwendung auf GAE zu bekommen. Ich hoffte, dass etw wie die folgende könnteweb.py in der Google App Engine

import web 
from google.appengine.ext.webapp.util import run_wsgi_app 

[...] 

def main(): 
    app = web.application(urls, globals()) 
    run_wsgi_app(app) 

arbeiten, aber offensichtlich das app Objekt entspricht nicht mit der run_wsgi_app Funktion Erwartungen. Der Fehler msg sagt etw wie app has no __call__ function, also habe ich versucht, statt app.run, aber das hat auch nicht funktioniert.

Wie kann ich den Anruf an run_wsgi_app arbeiten lassen?

Antwort

11

Hier ist ein Ausschnitt von StackPrinter, eine webpy Anwendung, die auf Google App Engine läuft.

from google.appengine.ext.webapp.util import run_wsgi_app 
import web 
... 
app = web.application(urls, globals()) 

def main(): 

    application = app.wsgifunc() 
    run_wsgi_app(application) 

if __name__ == '__main__': 
    main() 
+1

Cool, vielen Dank. –

0

Sie müssen run_wsgi_app nicht importieren oder verwenden, web.py hat eine runcgi-Methode, die perfekt funktioniert!

if __name__ == '__main__': 
    app.cgirun() 
+0

Warum nicht einfach 'app.run()' verwenden? web.py sollte herausfinden können, dass es die App als CGI ausführen muss. –

+0

Hauptsächlich weil 'app.run()' nicht funktioniert. – xj9