我正在尝试让 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。