{{{ #!python class PsycoMiddleware(object): """ This middleware enables the psyco extension module which can massively speed up the execution of any Python code. """ def process_request(self, request): try: import psyco psyco.profile() except ImportError: pass return None }}} Note that you can use `psyco.full()` instead of `psyco.profile()`. See http://psyco.sourceforge.net/psycoguide/node8.html '''Note that Psyco should only be used on 32bit systems'''. See http://www.alrond.com/en/2007/jan/25/performance-test-of-6-leading-frameworks . One possible way to determine the architecture automatically: {{{ #!python from platform import architecture if architecture()[0] != '32bit': raise Exception("Don't use this on non-32-bit platforms") class PsycoMiddleware(object): """ This middleware enables the psyco extension module which can massively speed up the execution of any Python code. """ def process_request(self, request): try: import psyco psyco.profile() except ImportError: pass return None }}} ---- One more issue I have with this -- why is import done on every request as opposed to module load time? The following looks saner to me: {{{ #!python from platform import architecture if architecture()[0] != '32bit': raise Exception("Don't use this on non-32-bit platforms") # let ImportError propagate at module load time so that people can notice and fix it import psyco class PsycoMiddleware(object): """ This middleware enables the psyco extension module which can massively speed up the execution of any Python code. """ def process_request(self, request): psyco.profile() return None }}} Or even {{{ #!python from platform import architecture if architecture()[0] != '32bit': raise Exception("Don't use this on non-32-bit platforms") import psyco psyco.profile() class PsycoMiddleware(object): def process_request(self, request): return None }}}