¿Popen ya no funciona con apache / wsgi y python 2.7.2?

Mi aplicación django que solía hacer algunos comandos de shell mediante el uso de subproceso de Python. Ya no funciona, ya que actualizo a Ubuntu a 11.10

Para simplificar el problema, puse el código defectuoso en el script wsgi:

import os import sys from subprocess import Popen,PIPE p=Popen(['/usr/bin/id'],stdout=PIPE,stderr=PIPE) comm=p.communicate() print comm,p.returncode os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 

Si ejecuto este código directamente por Python, funciona:

 $ python -V Python 2.7.2+ $ python django_wsgi.py ('uid=1002(www) gid=1002(www) groups=1002(www)\n', '') 0 

Si ejecuto este código por apache (solo coloco la URL relevante en un navegador), en el registro de apache, obtuve:

 [Tue Nov 29 11:34:38 2011] [error] ('', '') -6 

¿Qué es este error ‘-6’ ???

El problema es que con mi servidor de desarrollo (Ubuntu 10.04, casi la misma versión de apache / wsgi, el mismo archivo de configuración de Apache, las mismas variables de entorno, pero con Python 2.6.5) funciona bien:

 [Tue Nov 29 11:29:10 2011] [error] ('uid=1000(www) gid=1000(www) groups=1000(www)\\n', '') 0 

¿Sabes por qué Popen ya no funciona a través de Apache con Python 2.7?

Debido a que la última versión de Python 2.7 tiene un error, la ejecución de la bifurcación en los intérpretes puede fallar.

http://bugs.python.org/issue13156

Suponiendo que solo aloja la única aplicación WSGI, fuerce el uso del intérprete principal en lugar de un intérprete secundario agregando a su configuración de Apache:

 WSGIApplicationGroup %{GLOBAL}