我正在尝试启动apache + mod_wsgi,我有强烈的限制将源.py文件放到服务器上,所以我先编译它们并将.pyo文件放到服务器上。
这就是我在apache conf中所拥有的:
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonPath /var/wwwroot/
WSGIPythonOptimize 1
WSGIScriptAlias /home /var/wwwroot/home.pyo
但是mod_wsgi引发了错误(从apache错误日志中删除):
Failed to parse WSGI script file '/var/wwwroot/home.pyo'.
Exception occurred processing WSGI script '/var/wwwroot/home.pyo'.
File "/var/wwwroot/home.pyo", line 1
m\xf2
^
SyntaxError: invalid syntax
我尝试谷歌但无法找到mod_wsgi使用预编译的python代码的答案。
答案 0 :(得分:1)
一个简单的解决方法是在home.pyo
旁边添加一个仅包含from home import *
的额外文件。您可以将其称为foo.py
,您可以将其称为home.wsgi
,如果您愿意,可以将其称为the-quick-brown-fox-ate-the-lazy-dog
。 (因此,如果您遇到扩展名为“.py”的问题,则无关紧要。)
答案 1 :(得分:1)
mod_wsgi只对* .pyo文件不起作用,我遇到了这个问题,并且在试图找出它的时候撞了几个小时撞到了墙上。
如果没有常规旧的'.py'格式的python源代码,mod_wsgi就无法运行。答案 2 :(得分:1)
在mod_wsgi列表中回答了这个问题:
http://groups.google.com/group/modwsgi/browse_thread/thread/5da316e3480eab7f
简短的回答是,只有WSGI脚本文件需要是源代码,并且正如其他人所指出的那样,只需要有必要的行来设置sys.path,然后从中导入实际的WSGI应用程序入口点。 .pyo版本的模块在其他地方。