【发布时间】:2011-12-10 19:11:47
【问题描述】:
我正在为一个严重依赖于 scipy.stats.stats(scipy 版本 0.9.0)的包创建一个由 django 驱动的(1.3)接口,名为ovl。在早期开发阶段,使用 djangos 自己的开发服务器,这没有问题。使用 apache debian/2.2.9 和 mod_wsgi 3.3 部署后,这会导致严重的问题。
无论我尝试在浏览器中加载什么视图,它都会开始加载,并持续加载 5 分钟(直到超时),然后出现 500 个页面。
只是导入 scipy 作品,但是,不 使 scipy.stats.stats 甚至 scipy.stats 可用。这不足为奇。在 scipy 的 init.py 的文档中,声明子包 stats 需要显式导入。然而,关于子包cluster 也是如此,它在 django 中导入(从网络 和 django-shell 中的)没有任何问题,并且确实出现在 dir(scipy) 中,它 不在 ipython(0.10.2) 会话中,它只是没有出现,就像我预期的那样。
关于命令dir(scipy);它在来自普通 ipython shell(564 个字符串,没有子包 cluster)和 django shell 中的网络(568 个字符串的列表,包括子包cluster)时返回不同的结果。在 django shell 中,scipy 有 570 个属性,包括 cluster 和 stats 包。
另一件事是,如果我继续导入 ovl-package,同时将 scipy.stats 导入保持一定距离(不在应用程序本身的文件中),有时我会收到 ViewDoesNotExist 错误说明视图模块中没有方法索引,而显然有一个。这让我想起了this。
所以现在我正在考虑这些相当丑陋的解决方案:
- 编辑 scipy 的 init 以导入 stats 包,使其在 dir(scipy) 中“正常”显示,并可通过 scipy.stats 访问,我可以使用旧代码。
- 抓取 scipy 的 stat 子包并从中制作一个常规包(可能使用符号链接)
但是,我不愿意应用这些解决方案。事实集群在 django 环境中出现在 scipy 中让我有点担心。我想这可能与从网络登录时成为 www-data 用户有关,但我不知道如何检查。
有没有其他人遇到过这种情况?这其中的一部分? 或者其他有用的想法?
哦,另一个 django 部署确实工作。
【问题讨论】:
标签: python django statistics scipy python-module