【问题标题】:mod_wsgi and multiple installations of pythonmod_wsgi 和 python 的多个安装
【发布时间】:2011-09-20 23:35:49
【问题描述】:

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

仍然没有运气。想法?

【问题讨论】:

标签: python apache mod-wsgi


【解决方案1】:

您应该使用以下指令,具体取决于您使用的 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

【讨论】:

  • 我查看了 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 吗?
【解决方案2】:
[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

【讨论】:

  • 我专门为 Python 2.5.4 编译了它——我不明白为什么它在 2.6.1 中继续运行它
  • 啊,对不起,我误解了你的问题。
【解决方案3】:

这是我在 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 

【讨论】:

  • 正是我的情况。谢谢!太糟糕了,我们必须重新编译 mod_wsgi,然后再维护它。
猜你喜欢
  • 2010-10-29
  • 2019-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 2015-12-31
  • 1970-01-01
  • 2012-05-20
相关资源
最近更新 更多