为什么Python在numpy.core.ma上卡住?

3 投票
2 回答
1359 浏览
提问于 2025-04-16 15:10

我正在尝试在我的Mac 10.6.7 32位机器上设置pylab;我使用virtualenv来隔离我的工作环境,这样做让我感觉更好(因为我之前用的是ruby/rvm,如果这不是“python的做法”,请纠正我)。

我已经安装了以下模块/库:

DateUtils-0.5.1-py2.7.egg-info  numpy-1.5.1-py2.7.egg-info
IPython             pip-0.8.3-py2.7.egg
configobj.py            pylab.py
configobj.pyc           pylab.pyc
dateutil                pymc
dateutils               pymc-2.1beta-py2.7.egg-info
easy-install.pth            python_dateutil-2.0-py2.7.egg-info
enthought               pytz
ipython-0.10.1-py2.7.egg-info   pytz-2011e-py2.7.egg-info
matplotlib              scipy
matplotlib-0.91.1-py2.7.egg-info    scipy-0.9.0-py2.7.egg-info
nose                setuptools-0.6c11-py2.7.egg
nose-1.0.0-py2.7.egg-info       setuptools-0.6c12dev_r88795-py2.7.egg
numpy               setuptools.pth

唯一我不太清楚的是enthought;我从来没有安装过他们的python解决方案——这肯定是其他东西的依赖。

Numpy似乎运行得很好,matplotlib也可以顺利导入;我在命令行中都没有问题。当我直接调用ipython时也没有麻烦。但是当我尝试使用pylab时,python在处理numpy.core.ma时出现了问题,如下所示:

File "/Users/davidbgonzalez/.virtualenvs/VirtPy27/lib/python2.7/site-packages/matplotlib/numerix/ma/__init__.py", line 16, in <module>
from numpy.core.ma import *
ImportError: No module named ma

为了调查这个问题,我打开了__init__.py文件,并且在提示符下进行了一些操作,正如这里提到的。果然,ma是在numpy.ma中找到的,而不是numpy.core.ma;通过import numpy.ma确认了这一点。

我修改了出错的那一行:

from numpy.core.ma import * -> from numpy.ma import *

结果出现了一个新的、非常相似的错误:

File "/Users/davidbgonzalez/.virtualenvs/VirtPy27/lib/python2.7/site-packages/matplotlib/numerix/npyma/__init__.py", line 7, in <module>
from numpy.core.ma import *
ImportError: No module named ma

但是当我把numpy.core.ma改成numpy.ma时,我得到了一个可怕的错误:

Bus error

我对任何解决方案都持开放态度。

2 个回答

8

对于其他正在网上搜索的人来说,你现在要找的简单一句话是:

pip install -U 'http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.0.1/matplotlib-1.0.1.tar.gz/download'
3

看起来你安装的Matplotlib版本非常旧。我不太清楚你是从哪里得到的这个版本,但现在的最新版本是1.0.1,你可以从这个网址下载:http://matplotlib.sourceforge.net/

撰写回答