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
看问题发生的地方,如果上面的错误行可以给你一些提示。