RuntimeError:根据API版本编译的模块,但是这个版本的numpy是9

码:

import numpy as np import cv 

安慰:

 >>> 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 >>> 

系统信息:OS X El Capitan,Macbook Air,1.3 GHz Intel Core i5,8 GB 1600 HMz DDR3

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

将numpy升级到最新版本

 pip install numpy --upgrade 

检查path

 import numpy print numpy.__path__ 

对我来说这是/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 

然后下一次我inputnumpy的path是/Library/Python/2.7/site-packages/numpy/ init .pyc,一切都很好。

您可能正在运行安装在系统文件夹中的旧版numpy的Mac默认(/ usr / bin / python)。 使用opencv获取python的最简单方法是使用brew将python和opencv安装到/ usr / local并运行/ usr / local / bin / python。

 brew install python brew tap homebrew/science brew install opencv 

今天晚上我遇到了同样的问题。 事实certificate,我已经安装了多个numpy软件包。 旧版本安装在/usr/lib/python2.7 ,正确的版本安装在/usr/local/lib/python2.7

另外,我有PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages 。 PYTHONPATH在正确的版本之前发现了numpy的老版本,所以当在Python解释器里面的时候,它会导入旧版本的numpy。

有一件事情是帮助打开一个python会话执行以下代码:

 import numpy as np print np.__version__ print np.__path__ 

这应该告诉你Python正在使用哪个版本,以及它的安装位置。

为了解决这个问题,我改变了PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages 。 而且我还在这里使用文档设置了一个虚拟的Python环境。 我知道我应该首先设置一个虚拟环境,但是我很累,很懒惰。 哦,经验教训!

我希望这有帮助!

对于那些使用anaconda Python的人:

 conda update anaconda 

你可能想检查你的matplotlib版本。

不知何故,我安装了一个导致问题的matplotlib开发版本。 降级到稳定版本固定它。

也可以试试python -v -c 'import YOUR_PACKAGE' 2>&1 | less python -v -c 'import YOUR_PACKAGE' 2>&1 | less看问题发生的地方,如果上面的错误行可以给你一些提示。