site.addsitedir 未完全处理 .pth 文件
这是一个 apache/mod_wsgi/virtualenv/django 堆栈。在 virtualenv site-packages 目录中,我有一个 virtualenv_path_extensions.pth 文件。 apache conf 有一个
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 的第一行,但没有添加其余部分!
可能是什么原因造成的?
This is a apache/mod_wsgi/virtualenv/django stack. In the virtualenv site-packages dir I've got a virtualenv_path_extensions.pth file. The apache conf has a
WSGIScriptAlias / /path/to/my.wsgi
my.wsgi has
site.addsitedir('/path/to/virtualenv/site-packages')
Now, if I start up a python shell, import site, and call the line above, my sys.path looks correct : it has loaded all the paths in the virtualenv_path_extensions.pth
However, Under apache I'm getting 500 errors because it claims django is not on the path. When I log sys.path after the addsitedir line in my.wsgi, it looks as if it has added the first line of virtualenv_path_extensions.pth, but not the rest!
What might cause that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
啊,selinux :D
未加载的路径有错误的上下文,apache 无法触及它们...
** 必须记住在出现问题时检查这些 selinux 日志 **
Ah, selinux :D
The paths that were not getting loaded had the wrong context, and apache wasn't able to touch them ...
** must remember to check those selinux logs when mysteries arise **