当我
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发现的。
答案 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
(以及其他情况下的scipy
,matplotlib
)。以下链接包含解决方案。
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__