这是一个 apache/mod_wsgi/virtualenv/django 堆栈。在 virtualenv site-packages 目录中,我有一个 virtualenv_path_extensions.pth 文件。 apacheconf 有一个
WSGIScriptAlias / /path/to/my.wsgi
my.wsgi 有
site.addsitedir('/path/to/virtualenv/site-packages')
现在,如果我启动 python shell、导入站点并调用上面的行,我的 sys.path 看起来是正确的:它已加载 virtualenv_path_extensions.pth 中的所有路径
但是,在 apache 下我收到 500 错误,因为它声称 django 不在路径上。当我在 my.wsgi 中的 addsitedir 行之后记录 sys.path 时,它看起来好像添加了 virtualenv_path_extensions.pth 的第一行,但没有添加其余部分!
什么可能导致这种情况?
最佳答案
啊,selinux :D
未加载的路径有错误的上下文,apache 无法触及它们......
**当出现谜团时一定记得检查那些selinux日志**
关于python - site.addsitedir 未完全处理 .pth 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3460585/