0

我正在尝试在 Apache 后面使用带有 mod_wsgi 的 BottlePy。

应用程序.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

如果一些大师可以阐明一些光,将不胜感激:)

4

1 回答 1

0

您的 mod_wsgi 使用的是旧版本的 Python(2.4 或更早版本)。您需要使用以下方法重建 mod_wsgi:

./configure --with-python=/usr/local/python27

或(但请参阅下面的编辑)将您的 python27 可执行文件移动到它自己的目录(无论如何,IMO 是一种更好的做法),然后将其包含在您的 apache wsgi 配置中:

WSGIPythonHome /usr/local/bin/python2.7 # directory of your Python 2.7

此处提供更多详细信息。

希望这可以帮助!


编辑:根据 GrahamDumpleton 的评论,设置 WSGIPythonHome 在这里不一定有用。我的理解是,它旨在解决与您的问题略有不同的问题:告诉 mod_wsgi 当它位于非标准位置时其 python 安装在哪里(即,通常不会在PATHApache 获得的位置)。

于 2013-10-29T21:42:06.413 回答