繁体   English   中英

错误导入 cv2 : ImportError: numpy.core.multiarray 导入失败

[英]Error import cv2 : ImportError: numpy.core.multiarray failed to import

我是 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)]

感谢您对此事的任何帮助!

在 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之后可能会发生类似的事情,这可能会产生不一致的链接)。

如果您在 virtualenv 中工作,那么您在 virtualenv 之外安装了 opencv,这就是我的情况,请确保在内部和外部使用相同版本的 numpy。

您可以使用以下命令强制 pip 安装确切版本,例如1.10.0.post2

pip install numpy==1.10.0.post2

在 virtualenv 内外运行它,然后再次尝试导入。

在 El-Capitan OS 上,如果你会点击命令

pip install -U numpy

它很可能不会升级 numpy 模块。 原因是 El-Capiton 已经附带了一些 python 模块(例如六个),因此它不允许您删除这些模块的旧版本并用新版本替换它(这就是“-U”标志中的以上命令正在尝试执行)。 由于系统完整性保护,即使具有 root 权限也不允许。

因此,为了克服这个问题,我目前正在使用 virtualenv(安装和使用 virtualenv : 文章),并且在我的 virtualenv 中,我正在点击安装命令。 现在在 virtualenv 中,一切对我来说都很好。

PS:您可能还会在其他一些 pip 软件包安装中收到错误,这些软件包将尝试升级系统软件包(例如,当您安装 virtualenvwrapper 时)。 因此,要安装 virtualenvwrapper,请使用“--ignore-installed”标志点击 pip install 命令。

pip install --ignore-installed package-name-here

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM