我正在使用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
但是如果我从appname.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
答案 0 :(得分:2)
由于您的目录结构如何,您需要添加:
到sys.path。
要解释第二个错误是什么,需要查看'com.py'中的内容。
我建议尽管将目录命名为“appname.com”是一个非常糟糕的主意。 '。'的存在在目录名称中会混淆Python。
答案 1 :(得分:-2)
原来我需要写
from app import app as application