RuntimeError:针对API版本a编译的模块,但此版本的numpy为9

Isa*_*lds 75 python opencv numpy python-2.7

码:

import numpy as np
import cv
Run Code Online (Sandbox Code Playgroud)

安慰:

>>> runfile('/Users/isaiahnields/.spyder2/temp.py', wdir='/Users/isaiahnields/.spyder2')
RuntimeError: module compiled against API version a but this version of numpy is 9
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 685, in runfile
execfile(filename, namespace)
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/spyderlib/widgets/externalshell/sitecustomize.py", line 78, in execfile
builtins.execfile(filename, *where)
File "/Users/isaiahnields/.spyder2/temp.py", line 9, in <module>
import cv
File "/Applications/Spyder-Py2.app/Contents/Resources/lib/python2.7/cv.py", line 1, in <module>
from cv2.cv import *
ImportError: numpy.core.multiarray failed to import
>>> 
Run Code Online (Sandbox Code Playgroud)

系统信息:OS X埃尔卡皮坦的Macbook Air,1.3GHz的英特尔酷睿i5,8 GB 1600 HMZ DDR3

我已经尝试更新numpy.我不得不将cv.py添加到Spyder-Py2中的python2.7文件夹中是否还需要添加其他内容?

Jos*_*emi 105

将numpy升级到最新版本

pip install numpy --upgrade
Run Code Online (Sandbox Code Playgroud)

  • 这解决了问题,但是为什么?出现这个问题是因为安装了两个numpy.升级如何解决这个问题?! (8认同)

JnB*_*ymn 15

检查路径

import numpy
print numpy.__path__
Run Code Online (Sandbox Code Playgroud)

对我来说这是/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy所以我把它搬到了一个临时的地方

sudo mv /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy \
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy_old
Run Code Online (Sandbox Code Playgroud)

再下一次我进口numpy的路径是/Library/Python/2.7/site-packages/numpy/ 初始化 .pyc文件和一切都很好.

  • 工作,但需要重新安装它与`pip install numpy -I`(资本i参数说安装,而忽略当前安装被移动). (3认同)

nyb*_*bon 13

升级 numpy 来救援

numpy官方文档建议用户进行升级来解决这个问题[1]。

pip install numpy --upgrade
Run Code Online (Sandbox Code Playgroud)

但是我应该升级到哪个版本的 numpy ?

您可能升级到对于您的环境来说太新/太旧的版本。我花了很长时间试图找出遇到此错误时预计要升级到哪个版本的 numpy,这里是 numpy 版本及其相应 C API 版本的列表 [2],这对于解决此类问题可能很有用一个问题:

pip install numpy --upgrade
Run Code Online (Sandbox Code Playgroud)

参考


a20*_*a20 9

这对我有用:

sudo pip install numpy --upgrade --ignore-installed
Run Code Online (Sandbox Code Playgroud)

  • 这对我也有用。我遇到了同样的问题,安装了旧的 numpy 版本,但无法移动或删除旧的 numpy (3认同)
  • 不要执行 sudo pip install ! (3认同)

Pat*_*yer 4

您可能正在运行Mac默认(/ usr/bin/python),它在系统文件夹中安装了旧版本的numpy.让python与opencv一起工作的最简单方法是使用brew将python和opencv安装到/ usr/local并运行/ usr/local/bin/python.

brew install python
brew tap homebrew/science
brew install opencv
Run Code Online (Sandbox Code Playgroud)

  • 小心!安装多个版本的python可能不是一个好主意.你最终可能会像这样的人:http://stackoverflow.com/questions/14117945/too-many-different-python-versions-on-my-system-and-causing-problems (2认同)