mod_wsgi和python的多个安装

mod_wsgi和python的多个安装,python,apache,mod-wsgi,Python,Apache,Mod Wsgi,这是问题的延续,但它已经偏离了方向,所以我开始了一个新的问题。我想使用Python2.5而不是OSX默认的2.6。我已经为我的终端和诸如此类的东西设置了这个,但是每当apache运行时,它都会给我以下错误输出: [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: Comp

这是问题的延续,但它已经偏离了方向,所以我开始了一个新的问题。我想使用Python2.5而不是OSX默认的2.6。我已经为我的终端和诸如此类的东西设置了这个,但是每当apache运行时,它都会给我以下错误输出:

[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
我已将WSGIPythonPath设置为与sys.path在python shell中提供的内容相匹配:

WSGIPythonPath /System/Library/Frameworks/Python.framework/Versions/2.5
还是不走运。想法

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

这两行代码告诉您mod_wsgi是为错误的Python版本编译的,因此您需要使用正确的
——with Python
指令重新编译它。请参阅。

根据您使用的mod_wsgi版本,您应该使用以下指令

对于mod_wsgi 1.x:

WSGIPythonExecutable /path/to/python/2.5/exe
对于mod_wsgi 2.x:

WSGIPythonHome /path/to/python/2.5/exe/directory
WSGIPythonPath
仅用于将您自己的库添加到WSGI上下文中的Python路径


文档链接:

以下是我在CentOS 6.7上解决类似问题的方法,因为默认版本是Python 2.6,所以我需要安装Python 2.7以支持Django网站

首先,我使用
yum安装了Python 2.7:

yum install python27 python27-python-devel python27-MySQL-python
Python 2.7的安装路径是
/opt/rh/python27/root/usr/bin/Python

然后我们需要用新路径重新编译mod_wsgi,下面是命令:

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
这里的关键点是mod_wsgi需要在我的Python 2.7安装中的
/opt/rh/python27/root/usr/lib64
下找到
libpython2.7.so

安装过程中的另一个重要注意事项是,我必须使用
yum
安装
python27 MySQL-python
,否则在使用
pip
安装时出错,如下所示:

pip install MySQL-python 

我专门为python2.5.4编译了它——我不明白的是为什么它继续在2.6.1ah中运行,sry我误解了你的问题。我查看了python2.5可执行文件所在的
/System/Library/Frameworks/Python.framework/Versions/2.5/bin
,并将
WSGIPythonHome/System/Library/Frameworks/Python.framework/Versions/2.5/bin
添加到我的httpd.conf中,但结果仍然相同
WSGIPythonHome/System/Library/Frameworks/Python.framework/Versions/2.5/
您是否在服务器上同时使用mod_wsgi和mod_Python,这也是我的问题。那么,如何在一个盒子上托管使用多个python版本的多个站点呢?这正是我的情况。谢谢太糟糕了,我们必须重新编译mod_wsgi,然后维护它。