site.addsitedir未完全处理.pth文件

1 投票
1 回答
912 浏览
提问于 2025-04-16 02:38

这是一个关于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日志 **

撰写回答