5

在 Django 开发服务器上一切正常。在 Apache 中,django 应用程序也可以工作,除非使用 matplotlib。这是我得到的错误:

No module named multiarray.

Exception Type: ImportError 
Exception Value: No module named multiarray 
Exception Location: /usr/share/pyshared/numpy/core/numerictypes.py in <module>, line 81 
Python Executable: /usr/bin/python 
Python Version: 2.6.4 

在 python shell 中,两个语句都有效:import numpy.core.multiarray 和 import multiarray。有任何想法吗?谢谢

当我查看 numpy 文件时,我发现了 multiarray 模块,它的扩展名为“so”。我的猜测是 mod_python 没有读取这些文件。

4

2 回答 2

9

问题解决了。这就是我所做的。

首先,在我收到导入错误之前:

“没有名为 multiarray 的模块。”

我收到这样的错误:

“:无法创建 /some/dir/.matplotlib;考虑将 MPLCONFIGDIR 设置为 matplotlib 配置数据的可写目录”

通过将 pyshared 文件夹添加到 PythonPath 变量,这个错误消失了,我得到了导入错误。

所以这就是我修复它的方法:

从 PythonPath 变量中删除了 pyshared 文件夹。

在导入 matplotlib 模块之前,添加以下行:

import os
os.environ['HOME']='/some/writable/dir'

接下来,在导入 matplotlib.pyplot 或 pylab 之前,添加这些行:

import matplotlib
matplotlib.use('Agg') 
# 'Agg' or whatever your backend is.

在此处记录。

那是!它现在正在为我工​​作 python2.5。但我相信它也适用于 2.6。

于 2010-04-15T14:29:49.750 回答
1

在 Win32 上,我通过从 py2.6.5 降级到 py2.5 解决了类似的问题(无法通过 ISAPI_WSGI (IIS) 加载 pyd 模块)。看起来这可能是一个重新引入的 Python 错误。参见例如这个讨论

于 2010-04-10T04:38:16.843 回答