2010-09-08 51 views
9

Estoy tratando de obtener una aplicación web.py ejecutándose en GAE. Tenía la esperanza de que algo como la siguiente podría funcionarweb.py en 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) 

Pero, evidentemente, el objeto app no cumplir con las expectativas de la función run_wsgi_app. El mensaje de error dice algo así como app has no __call__ function, así que intenté pasar app.run, pero tampoco funcionó.

¿Cómo puedo hacer que la llamada al run_wsgi_app funcione?

Respuesta

11

Aquí hay un fragmento de StackPrinter, una aplicación webpy que se ejecuta en la parte superior de Google App Engine.

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

Genial, muchas gracias. –

0

No es necesario importar o utilizar run_wsgi_app, web.py tiene un método runcgi que funciona perfectamente!

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

¿Por qué no usar simplemente 'app.run()'? web.py debería ser capaz de darse cuenta de que necesita ejecutar la aplicación como cgi. –

+0

Principalmente porque 'app.run()' no funciona. – xj9