我正在尝试使用mod_wsgi在Apache后面使用BottlePy。
app.wsgi:
#!/usr/bin/python27
from bottle import route, default_app
from wbem.models import Host
@route('/')
def index():
return "Home Page"
os.chdir(os.path.dirname(__file__))
application = default_app()
但是,我似乎得到了这个错误:
mod_wsgi (pid=8850): Target WSGI script '/u/apps/wbem/app.wsgi' cannot be loaded as Python module.
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] mod_wsgi (pid=8850): Exception occurred processing WSGI script '/u/apps/wbem/app.wsgi'.
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] Traceback (most recent call last):
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] File "/u/apps/wbem/app.wsgi", line 2, in ?
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] from bottle import route, default_app
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] File "/usr/local/lib/python2.7/site-packages/bottle.py", line 113
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] return s.encode(enc) if isinstance(s, unicode) else bytes(s)
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] ^
[Wed Oct 30 09:35:17 2013] [error] [client 10.10.65.19] SyntaxError: invalid syntax
如果某位大师能够发光,请欣赏:)
答案 0 :(得分:0)
您的mod_wsgi使用旧版本的Python(2.4或更早版本)。您需要使用以下方法重建mod_wsgi:
./configure --with-python=/usr/local/python27
或(但请参阅下面的编辑)将你的python27可执行文件移动到它自己的目录(无论如何都是IMO更好的做法),然后将它包含在你的apache wsgi config中:
WSGIPythonHome /usr/local/bin/python2.7 # directory of your Python 2.7
更多详细信息here。
希望这有帮助!
编辑:根据GrahamDumpleton的评论,设置WSGIPythonHome在这里不一定有用。我的理解是,它旨在解决你的一个稍微不同的问题:告诉mod_wsgi它的python安装在非标准位置的位置(即,通常不在Apache获得的PATH
上)