mod_wsgi和python的多个安装

2024-06-07 00:18:10 发布

您现在位置:Python中文网/ 问答频道 /正文

这是this问题的一种延续,但是它已经偏离了,所以我开始了一个新的问题。我想使用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

仍然没有运气。思想?


Tags: mod终端wsgiforapache错误thisjun
3条回答

以下是我如何在CentOS6.7上解决类似问题的方法,因为默认是Python2.6,所以我需要安装Python2.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安装中找到libpython2.7.so下的/opt/rh/python27/root/usr/lib64

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

pip install MySQL-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路径。

链接到文档: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.

这两行代码告诉您,mod wsgi是为错误的Python版本编译的,因此需要使用正确的--with-python指令重新编译它。见http://code.google.com/p/modwsgi/wiki/QuickInstallationGuide#Configuring_The_Source_Code

相关问题 更多 >