For the context, I work at a large private bank in Switzerland, writing Enterprise applications on the J2EE stack.
There are plenty of "Production Ready" web frameworks in Python. And there are plenty of large Python based websites out there.
That said, I think Python is a poor choice for an Enterprisy application. It can be used as a glue language, or a scripting language (our deployement scripts are Python). The showstopper for me is backward compatibility (Python 3.x isnt backward compatible with Python 2.x). The Python philosopy seems to be more to inovate and make the language better, smoother, and not necessaraly to support programs written 10 years ago.
On the Web framework side, I love Django, but it is definitly much too young and evolving too rapidly to be used in the enterprise. I have not much experience with other Python based frameworks.
If you want an enterprise oriented framework, you'll have to stay with enterprise stacks (Java / .Net).
On the other hand, even in the Java world, there is a tendency to use frameworks that are less enterprisy. Think Spring vs EJB2 or EJB3 being much lighter weight than EJB2. Or think Flex (which is far from an enterprise framework in my view) being used more and more in the enterprise. So if your enterprise is openminded enough, ready to jump into the future, using Django, RoR or other modern Web 2.0, community driven, Open Source, next generation, active record based frameworks ... might not be that much of a stretch ...
And finally, to answer a few of your points directly :
- support of ORM / caching / ... : yes, but most solutions are based on active record, which is fine for 90% of what youmight want to do, but is definitly not as complete / complex as JPA / Hibernate
- control oriented UI : no, and you wont find a standard, so you wont find 3rd party components. The closest you might get is integration with jQuery or other JS UI frameworks
- dependency injection : There is a port of Spring to Python, maintained by SpringSource. But DI is not in the Python philosophy. The same problem will be resolved wit functions, default arguments and closures. And we might argue that the Pythonic solution is cleaner than the Java way ...
- unit / integration tests : very good support, multiple test frameworks. Still, support is not as good as Java where we have tons of tools around testing.
- good IDE support : there are technical limitations to the ammount of support you can provide to a dynamic language, but at least both Eclipse and Netbeans have great support for Python.
- clustering / modularity : clustering will be resovled with a "share nothing infrastructure" and/or distributed caching. There are no solutions for modularity (in the OSGI sense) as far as I know. But I would challenge that very often OSGI is a solution for a problem we dont have in the enterprise ...