mod_wsgi and multiple installations of python

和自甴很熟 提交于 2019-11-27 22:50:02
Kaltezar

You should use the following directives depending on which version of mod_wsgi you use

For mod_wsgi 1.x:

WSGIPythonExecutable /path/to/python/2.5/exe

For mod_wsgi 2.x:

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

The WSGIPythonPath is just intended to add your own libraries to the Python Path in the WSGI context.

Link to documentation: http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives#WSGIPythonExecutable

[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.

These two lines tell you that mod_wsgi was compiled for the wrong Python version, so you need to recompile it with the correct --with-python directive. See http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Configuring_The_Source_Code.

Here is how I resolved the similar problem on CentOS 6.7, since the default was Python 2.6, I needed to install Python 2.7 to support a Django website.

First I installed Python 2.7 with yum:

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

the installation path of Python 2.7 is /opt/rh/python27/root/usr/bin/python

Then we need to re-compile mod_wsgi with the new paths, and here are the commands:

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

The key point here is that mod_wsgi needs to locate the libpython2.7.so under /opt/rh/python27/root/usr/lib64 in my Python 2.7 installation.

Another important note in my installation was that I had to install python27-MySQL-python with yum, otherwise I got an error when installing it with pip as below:

pip install MySQL-python 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!