site.addsitedir未完全处理.pth文件
这是一个关于apache、mod_wsgi、virtualenv和django的技术组合。在我的虚拟环境的site-packages目录下,有一个叫做virtualenv_path_extensions.pth的文件。apache的配置文件里有一段代码:
WSGIScriptAlias / /path/to/my.wsgi
而我的my.wsgi文件里有:
site.addsitedir('/path/to/virtualenv/site-packages')
现在,如果我启动一个python命令行,导入site模块,然后调用上面的那行代码,我的sys.path看起来是正确的:它加载了virtualenv_path_extensions.pth文件里的所有路径。
但是,在apache下,我却遇到了500错误,因为它说django不在路径上。当我在my.wsgi文件中添加了addsitedir那行代码后,记录sys.path的内容时,发现它好像只添加了virtualenv_path_extensions.pth的第一行,但没有添加后面的内容!
这可能是什么原因呢?
1 个回答
1
啊,selinux :D
那些没有被加载的路径有错误的上下文,导致apache无法访问它们...
** 当出现奇怪的问题时,一定要记得查看那些selinux日志 **