1) Python hosting is much harder than PHP hosting. While hosts that support Python should be able to support Web2py, that is not always the case because they don't support one of the web server communication mechanisms such as mod_wsgi or fastcgi. If the host supports Django apps, it should be possible to get Web2py to work.
2) It's pretty flexible but there are some restrictions enforced by Web2py, Python and/or the database. Routing is pretty flexible. 3) There isn't much of a concept of config files or anything. The optional routes.py file is sort of like a config file for routes. You can place config-like settings in models files as well. I'd say CoC has an edge. 4) Once again, setting up Python apps is harder than PHP. You don't just drop files into a folder. However, once you have Web2py up and running, then you can just drop a bundle of web2py app code in the applications directory (possibly requiring a server restart). 5) The Web2py book is the best I've seen. You can get started quickly by just downloading the Windows or Mac package and running it from your own computer. Later you can figure out how to deploy to a remote web server.

