Apache 与 mod_wsgi 显示“Python 版本不匹配”

Apache 与 mod_wsgi 显示“Python 版本不匹配”

我正在尝试让 web.py 运行。

我已经编译了 mod_wsgi 以使用 python2.6,并正确配置了我的虚拟主机(至少我很确定它是!)。hello, world 应用程序一直显示为 404。我将 Apache 的日志级别更改为 info。并看到以下内容:

[Wed Sep 28 15:41:12 2011] [info] mod_wsgi (pid=25969): Attach interpreter ''.
[Wed Sep 28 15:42:55 2011] [info] mod_wsgi (pid=25969): Create interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroying interpreters.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroy interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Cleanup interpreter ''.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Terminating Python.
[Wed Sep 28 15:45:33 2011] [error] Exception KeyError: KeyError(-1216178416,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Python has shutdown.
Fatal Python error: Interpreter not initialized (version mismatch?)

关于 KeyError,我真的不确定它从何而来。我从命令行 (python26 code.py) 测试了该应用程序,它执行时没有错误。事实上,它没有给出任何输出。

为了以防万一,这是我的 VirtualHost 配置以及应用程序代码:

Python 代码(直接取自 web.py 网站):

#!/usr/bin/python26
import web

urls = (
        '/.*', 'index'
        )

class index:
    def GET(self):
        return "Hello, world!"


app = web.application(urls,globals()).wsgifunc()

虚拟主机:

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerAdmin "[email protected]"
        ServerName clearpoint.turnleftllc.com
        ServerAlias clearpoint
        ErrorLog logs/clearpoint_error_log

        DocumentRoot /home/turnleftllc/public_html/cpccs
        WSGIScriptAlias /budgetCalculator /home/turnleftllc/public_html/cpccs/apps/code.py
        Alias /budgetCalculator/static /home/turnleftllc/public_html/cpccs/apps/static
        AddType text/html .py
        <Directory /home/turnleftllc/public_html/cpccs>
                Order allow,deny
                Allow from all
                AllowOverride All
        </Directory>
        <Directory /home/turnleftllc/public_html/cpccs/apps>
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

我使用的是 CentOS5,默认使用 python2.4。我确实卸载了 mod_wsgi 并将其重新编译为 python2.6(正如您在输出中看到的那样,它肯定正在初始化 2.6)。

任何帮助将不胜感激!

答案1

确保您没有将 mod_python 加载到同一个 Apache 中。

阅读以下内容并验证您的安装。

http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Installation_In_Use

http://code.google.com/p/modwsgi/wiki/InstallationIssues

KeyError 消息是因为您使用的是旧版 mod_wsgi 而不是最新版本,因此如果您从源代码构建,请确保使用了 mod_wsgi 3.3。

相关内容