I am a friend of web.py user and I work in DotCloud, by the way :-)
We use uWSGI to launch your WSGI application. The fact is that uWSGI is looking for a variable called "application".
Here is what I usually do:
app = web.application(urls, globals()) if __name__ == '__main__': app.run() else: web.config.debug = False application = app.wsgifunc()
So, you can continue to use the application on your local computer:
$ python ./wsgi.py
And click it on production (of course, on DotCloud;) with debugging mode disabled.
Here is your wsgi.py file fixed:
import web urls = ( '/(.*)', 'Hello' ) class Hello(object): def GET(self, name): if not name: name = 'World' return 'Hello, ' + name + '!' app = web.application(urls, globals()) if __name__ == '__main__': app.run() else: web.config.debug = False application = app.wsgifunc()
Beware of using your wsgi.py correctly in your approach.
Also make sure you have a file named "requirements.txt" in your consent, containing:
web.py
In the meantime, feel free to contact DotCloud support if you have any deployment problems.
Sam alba
source share