一切都在Django开发服务器上运行。在Apache中,除了使用matplotlib之外,django应用程序也可以工作。这是我得到的错误:
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文件时,我发现了多阵列模块,其扩展名为“so”。我的猜测是,mod_python没有读取这些文件。
答案 0 :(得分: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.
记录在案here。
那就是!现在我正在为python2.5工作。但我相信它也适用于2.6。
答案 1 :(得分:1)
在Win32上,我通过从py2.6.5降级到py2.5解决了类似的问题(无法通过ISAPI_WSGI(IIS)加载pyd模块)。看起来这可能是一个已经重新引入的Python bug。请参阅示例this discussion。