如何更改python mod_python使用的版本

jam*_*ate 2 python apache django mod-python

我正在做django的一些介绍性的工作,到目前为止看起来真的很容易(而且很有趣),但是我已经在我安装在/ opt/local(RedHat 5.3)中的Python 2.6中做了这一切,因为redhat附带的python是2.4 .我设置了一个符号链接:

/usr/bin/python2.6 -> /opt/local/bin/python
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在使用那个django的东西; 即

> python2.6 manage.py runserver
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试进入生产模式时,mod_python没有使用正确版本的python:

Mod_python error: "PythonHandler django.core.handlers.modpython"

Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 287, in HandlerDispatch
    log=debug)

  File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 461, in import_module
    f, p, d = imp.find_module(parts[i], path)

ImportError: No module named django
Run Code Online (Sandbox Code Playgroud)

我在/etc/httpd/conf/httpd.conf中有这个:

<Location "/chat">
 SetHandler python-program
 PythonHandler django.core.handlers.modpython
 SetEnv DJANGO_SETTINGS_MODULE chat.settings
 PythonDebug On
 PythonPath "['/www/django/chat', '/opt/local/lib/python2.6/site-packages/django/'] + sys.path"
</Location>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如何让mod_python寻找python2.6而不是python?

Geo*_*edy 5

您必须针对python2.6安装重建mod_python.由于mod_python将python加载为库,因此版本在编译时得到修复.