Apache从django项目加载x.wsgi文件,没有__file__属性关联

时间:2012-02-16 03:07:49

标签: python django wsgi

我正在尝试使用mod_wsgi加载从apache调用的python wsgi文件。我的wsgi文件尝试使用以下命令重置sys.path:

import os, sys

root = os.path.join(os.path.dirname(__file__), '..')
sys.path.insert(0, root)

Apache抱怨:     [Wed Feb 15 19:12:26 2012] [error] [client 127.0.0.1]

ImportError: Could not import settings 'mysite.settings'

(Is it on sys.path?): No module named mysite.settings`

当我这样做时:

>>> dir('mysite.wsgi')

很明显,wsgi文件不具有__file__属性,因此我的sys.path未获得必要目录的更新。

为什么此mysite.wsgi文件没有__file__属性?

2 个答案:

答案 0 :(得分:1)

它应该工作,
但您也可以尝试检查以下代码块是否有帮助。

DIRNAME = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(DIRNAME)

答案 1 :(得分:1)

设置为“root”的结果路径必须是Django settings.py所在目录的父目录,“mysite”必须是该目录的名称。您没有提及项目目录的名称或WSGI文件所在的位置,因此无法告诉您代码的错误。

Apache下的代码也将作为特殊用户运行,因此项目目录必须对该用户可访问/可读。

也许去看看:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

更好地了解如何设置它。