1

我正在使用 apache modewsgi 安装烧瓶应用程序。

我已经解决了多个麻烦: - 环境变量 - virtualenv - 文件权限

但现在我真的被应用程序名称困住了。我不知道在 WSGI 文件的“from”指令中写什么。

这是我的 ~user/appname.com/appname.com.wsgi

activate_this = '/home/user/appname.com/venv/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/home/user/appname.com')
from appname.com import app as application

这会导致以下日志。

[Mon Apr 08 15:50:26 2013] [error] [client 64.120.6.170] mod_wsgi (pid=6392): Exception occurred processing WSGI script '/home/user/appname.com/appname.com.wsgi'.
[Mon Apr 08 15:50:26 2013] [error] [client 64.120.6.170] Traceback (most recent call last):
[Mon Apr 08 15:50:26 2013] [error] [client 64.120.6.170]   File "/home/user/appname.com/appname.com.wsgi", line 5, in <module>
[Mon Apr 08 15:50:26 2013] [error] [client 64.120.6.170]     from appname.com import app as application
[Mon Apr 08 15:50:26 2013] [error] [client 64.120.6.170] ImportError: No module named appname.com

但是,如果我删除 fromappname.com我可以从 python 命令行运行 .wsgi 而不会出现错误,但在 apache 中,它会引发以下错误...

[Mon Apr 08 15:27:31 2013] [error] [client 64.120.6.170] mod_wsgi (pid=6274): Exception occurred processing WSGI script '/home/user/appname.com/appname.com.wsgi'.
[Mon Apr 08 15:27:31 2013] [error] [client 64.120.6.170] TypeError: 'module' object is not callable

更新:

这是 ~user/appname.com/ 的结构

app/
    controller.py
    __init__.py
    models.py
    ...
    static/
        ...
    templates/
config.py
Procfile
README
requirements.txt
run.py
appname.com.wsgi
4

2 回答 2

2

由于您构建目录的方式,您需要添加:

  • /家/用户

到 sys.path。

要解释第二个错误是什么,需要查看“com.py”中的内容。

我建议将您的目录命名为“appname.com”是一个非常糟糕的主意。'.' 的存在 在目录名称中会混淆 Python。

于 2013-04-08T21:51:53.877 回答
-2

原来我需要写

from app import app as application
于 2013-04-09T09:29:53.037 回答