2011-06-23 12 views
15

Esto es una especie de continuación de la pregunta this, pero se ha desviado, así que comencé una nueva. Me gustaría utilizar Python 2.5 en lugar del predeterminado 2.6 de OS X. He creado esto para mi terminal y todo eso, pero cada vez que se ejecuta Apache me da la siguiente salida de error:mod_wsgi y varias instalaciones de python

[Thu Jun 23 00:01:42 2011] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] 
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Compiled for Python/2.5.4. 
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Runtime using Python/2.6.1. 
[Thu Jun 23 00:01:42 2011] [notice] Digest: generating secret for digest authentication ... 
[Thu Jun 23 00:01:42 2011] [notice] Digest: done 
[Thu Jun 23 00:01:42 2011] [notice] Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 mod_wsgi/3.3 Python/2.6.1 configured -- resuming normal operations 

he fijado WSGIPythonPath para que coincida con lo que sys.path me da en la cáscara de pitón:

WSGIPythonPath /System/Library/Frameworks/Python.framework/Versions/2.5 

Todavía no hubo suerte. Ideas?

+0

posible duplicado de [mod_wsgi edificio usando Python 2.5 en la nieve Leopard] (http://stackoverflow.com/questions/3534508/building-mod-wsgi-using-python-2-5-on-snow-leopard) –

+0

Tema interesante, ese es mi problema también. Entonces, ¿cómo puede alojar múltiples sitios que usa múltiples versiones de Python en un solo cuadro? – pylover

Respuesta

4
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Compiled for Python/2.5.4. 
[Thu Jun 23 00:01:42 2011] [warn] mod_wsgi: Runtime using Python/2.6.1. 

Estas dos líneas le dicen que mod_wsgi fue compilado para la versión de Python mal, por lo que necesita para volver a compilar con la correcta --with-python Directiva. Ver http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Configuring_The_Source_Code.

+0

Lo compilé específicamente para Python 2.5.4 - lo que no entiendo es por qué continúa ejecutándolo en 2.6.1 –

+0

ah, sry Entiendo mal su problema. –

10

que puedes usar las siguientes directrices en función de la versión de mod_wsgi utiliza

Para mod_wsgi 1.x:

WSGIPythonExecutable /path/to/python/2.5/exe 

Para mod_wsgi 2.x:

WSGIPythonHome /path/to/python/2.5/exe/directory 

El WSGIPythonPath solo tiene la intención de agregar sus propias bibliotecas a la ruta de acceso de Python en el contexto de WSGI.

Enlace a la documentación: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIPythonExecutable

+0

He visto '/ System/Library/Frameworks/Python.framework/Versions/2.5/bin' donde python2.5 vidas ejecutables, y agregó 'WSGIPythonHome/System/Library/Frameworks/Python.framework/Versions/2.5/bin' a mi httpd.conf, pero sigue siendo el mismo resultado –

+0

Pruebe' WSGIPythonHome /System/Library/Frameworks/Python.framework/Versions/2.5/' – Kaltezar

+0

Intentó y falló –

2

Aquí es cómo resolvieron el problema similar en CentOS 6.7, ya que el defecto era Python 2.6, que necesita para instalar Python 2.7 para soportar un sitio web Django.

Primero instalado Python 2.7 con yum:

yum install python27 python27-python-devel python27-MySQL-python 

la ruta de instalación de Python 2.7 es /opt/rh/python27/root/usr/bin/python

entonces tenemos que volver a compilar mod_wsgi con los nuevos caminos, y aquí están los comandos:

wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz 
tar -xzf 4.4.21.tar.gz 
cd mod_wsgi-4.4.21 
./configure --with-python=/opt/rh/python27/root/usr/bin/python LDFLAGS="-R/opt/rh/python27/root/usr/lib64" 
make && make install 
service httpd restart 
tail /var/log/httpd/error_log 

el punto clave aquí es que mod_wsgi necesita para localizar el libpython2.7.so bajo /opt/rh/python27/root/usr/lib64 en mi instalación de Python 2.7.

Otra nota importante en mi instalación fue que tuve que instalar python27-MySQL-python con yum, de lo contrario me dio un error al instalarlo con pip de la siguiente manera:

pip install MySQL-python 
Cuestiones relacionadas