我是Ubuntu的新手,我正在尝试在Jupyter Notebook中使用OpenCV模块。
运行时出现错误消息:
import cv2
消息错误是:
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
RuntimeError: module compiled against API version a but this version of numpy is 9
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-20-72fbbcfe2587> in <module>()
----> 1 import cv2
ImportError: numpy.core.multiarray failed to import
我在stackoverflow上读过其他用户的一些类似问题。这个问题通常来自错误的numpy版本。我检查过,我使用的是numpy 1.9.2:
numpy.version.version
Out[22]:'1.9.2'
根据我对其他帖子的理解,1.8及以上版本应该足够了。有没有人知道可能出现什么问题?
有关信息,我的Python / Anaconda版本是
print sys.version
2.7.10 |Anaconda 2.3.0 (64-bit)| (default, Sep 15 2015, 14:50:01)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]
感谢您对此事的任何帮助!
答案 0 :(得分:0)
在MacOS上安装OpenCV时收到了注释:
The following NEW packages will be INSTALLED:
opencv: 2.4.8-np17py27_2
The following packages will be DOWNGRADED:
numpy: 1.10.2-py27_0 --> 1.7.1-py27_2
Proceed ([y]/n)? y
我收到了你提到的同样的ipython错误。在通常conda update anaconda
之后,我现在处于numpy 1.10.1并且在我的ipython-notebook中导入了numpy和cv2。为什么你的会话会显示当前的numpy对我来说不清楚(这可能发生在conda update numpy
之后,这可能会产生不一致的链接)。
答案 1 :(得分:0)
如果你在virtualenv中工作,你在virtualenv之外安装了opencv,那就是我的情况,请确保你在内部和外部都使用相同版本的numpy。
您可以使用以下命令强制pip安装精确版本,例如 1.10.0.post2 :
pip install numpy==1.10.0.post2
在virtualenv内外运行,然后再次尝试导入。
答案 2 :(得分:0)
在El-Capitan OS上,如果您按下命令
pip install -U numpy
很可能它不会升级numpy模块。原因是El-Capiton已经附带了一些python模块(例如六个),因此它不会允许你删除那些模块的旧版本并用新版本替换它(那就是&#34; - 上面命令中的U&#34;标志正在尝试)。由于系统完整性保护,它甚至不允许使用root权限。
所以为了克服这个问题,我目前正在使用virtualenv(安装和使用virtualenv:Article),在我的virtualenv中,我正在命令安装。现在,在virtualenv中,一切都对我很好。
PS:您可能还会在其他一些pip软件包安装中收到错误,这些软件包将尝试升级系统软件包(例如,在安装virtualenvwrapper时)。 所以要安装virtualenvwrapper hit pip install命令&#34; - ignore-installed&#34;标志。
pip install --ignore-installed package-name-here