Mi aplicación Django que se utiliza para hacer algunos comandos shell usando pitón subprocess.Popen ya no funciona desde que migrar a Ubuntu 11.10 a¿Popen ya no funciona con apache/wsgi y python 2.7.2?
Para simplificar el problema, puse el código defectuoso en el guión 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 funciono el código directamente por pitón, funciona:
$ python -V
Python 2.7.2+
$ python django_wsgi.py
('uid=1002(www) gid=1002(www) groups=1002(www)\n', '') 0
Si me quedo este código por Apache (que sólo hay que poner la URL correspondiente en un navegador), en el registro de Apache, llegué :
[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, mismo archivo de configuración de Apache, mismas variables de entorno, pero con Python 2.6.5) funciona así:
[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 con apache con python 2.7?
de verdad muchas gracias mucho, me he quedado atrapado y tu respuesta resolvió mi problema :) – Eric
¡Necesitas un botón +10 para esta respuesta! –
¿Hay alguna solución para aquellos de nosotros en 2.7.2? – BrainCore