我正在尝试使用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__
属性?
答案 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
更好地了解如何设置它。