【问题标题】:Matplotlib and WSGI/mod_python not working on ApacheMatplotlib 和 WSGI/mod_python 不能在 Apache 上运行
【发布时间】:2010-04-01 15:07:49
【问题描述】:

在 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 没有读取这些文件。

【问题讨论】:

  • 如果你从 python shell 执行“from numpy.core.multiarray import typeinfo, ndarray, array, empty, dtype”会发生什么?
  • 效果很好。没有错误消息。
  • 我好像也有类似的问题。我正在运行 py2.6、cherrypy、IIS、isapi_wsgi。 Matplotlib 在 Python shell 中运行良好。当被 IIS 调用时,尝试加载 pyd 模块(例如 matplotlib._path)失败。我检查了 os.environ 和 sys.path。
  • e1i45:你运行的是什么版本的 matplotlib?我在 Ubuntu 上有 1.3.0。我在 Windows XP 上成功运行了 matplotlib 版本 1.4.0rc1。
  • 我正在运行 matplotlib 版本 0.99.1

标签: django apache2 mod-wsgi mod-python


【解决方案1】:

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

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

“没有名为 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。

【讨论】:

  • 在 linux 系统上 os.environ['MPLCONFIGDIR']='/tmp' 也可以。
【解决方案2】:

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

【讨论】:

  • 我认为你是对的。我的一切都在使用 python 2.5 的 Windows 机器上工作。但是,Ubuntu 附带了 python 2.6,因此很难降级到 python 2.5。最重要的是,如果您当前的 python 版本是 2.5,则无法安装 mod_python。
猜你喜欢
  • 1970-01-01
  • 2011-02-13
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
  • 1970-01-01
  • 2010-11-07
  • 2015-02-12
  • 2014-04-03
相关资源
最近更新 更多