导入matplotlib时numpy的版本错误

时间:2013-10-27 13:39:53

标签: macos numpy matplotlib packages osx-mavericks

当我

import matplotlib

我没有错误,但是当我

import matplotlib.pyplot

我得到了

RuntimeError: module compiled against API version 8 but this version of numpy is 7
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/matplotlib/pyplot.py", line 24, in <module>
    import matplotlib.colorbar
  File "/Library/Python/2.7/site-packages/matplotlib/colorbar.py", line 27, in <module>
    import matplotlib.artist as martist
  File "/Library/Python/2.7/site-packages/matplotlib/artist.py", line 8, in <module>
    from transforms import Bbox, IdentityTransform, TransformedBbox, \
  File "/Library/Python/2.7/site-packages/matplotlib/transforms.py", line 35, in <module>
    from matplotlib._path import (affine_transform, count_bboxes_overlapping_bbox,
ImportError: numpy.core.multiarray failed to import

这看起来像version error;但yolk说我有最新版本,而pip表示所有内容都是最新的,并且无法帮助“真正”更新内容。

我可以做些什么来确保必要的软件包“真正”最新以避免此错误;什么包需要“真正”更新(matplotlib; numpy;其他?)。


卸载并重新调整numpy(使用pip)无济于事。

pip以某种方式让我最近将matplotlib更新为“太新”一个版本,是否知道numpy滞后的pip版本?


我的sys.path是:

['',
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', 
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',  
'/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', 
'/Library/Python/2.7/site-packages']

并且Scypi堆栈安装在site-packages中,由pip维护。 OS X 10.9,Apple Python 2.7.5,所有软件包版本都是由PiPy中的pip发现的。

5 个答案:

答案 0 :(得分:5)

强制重新安装在这种情况下有效,因为在类似情况下通常会这样做:

sudo pip install -U --force-reinstall scipy

答案 1 :(得分:1)

我也有同样的错误。我可以通过我的python IDE安装numpy来修复它。我正在使用PyCharm。当Pycharm打开时,有一个配置东西的选项,从那里你可以选择python解释器。在右侧,面板应显示两个选项;路径和包。选择包,然后选择安装,将弹出可用包列表。从列表中选择numpy,然后从此窗口中单击“安装”。这解决了我的错误。

答案 2 :(得分:0)

以防

  

sudo pip install -U --force-reinstall scipy

不起作用(即使您包含特定版本),您可能希望确保使用您正在使用的Python安装了正确版本的numpy。我有同样的“numpy.core.multiarray无法导入”问题,但这是因为我为我正在使用的Python版本安装了1.6,即使我继续安装1.8并假设它正在安装在正确的目录中。< / p>

我在Mac终端中使用以下命令找到了坏的numpy版本:

  

python -c“import numpy; print numpy.version; print numpy.file”;

这个命令给了我正在使用的numpy的版本和位置(结果是1.6.2)。我去了这个位置并手动将其替换为1.8的numpy文件夹(pip命令已在其他地方安装了它),这解决了我的“numpy.core.multiarray无法导入”问题。希望有人觉得这很有用!

答案 3 :(得分:0)

sudo pip install -U --force-reinstall scipy

适用于我,但是当您在Mac上重新启动时,您必须取消选中“重新打开窗口”以使其正常工作

不只是重启:)

答案 4 :(得分:0)

我遇到了同样的问题,原因似乎是Mac OS X mavericks附带的旧版numpy(以及其他情况下的scipymatplotlib)。以下链接包含解决方案。

https://stackoverflow.com/a/28518106

需要手动删除位于(在我的情况下)的旧模块 /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/

然后升级模块。新模块位于 /Library/Python/2.7/site-packages/

可以通过检查

确保导入

import numpy

print numpy.__file__

print numpy.__version__