关于python 2.7:Opencv / numpy问题:“模块是根据API版本X编译的,但此版本的numpy是Y”

Opencv/numpy issue: “module compiled against API version X but this version of numpy is Y”

我是opencv的新手,几天前我尝试安装它。 我安装了所有内容并将cv2文件从opencv移至python 2.7。 我厌倦了浏览这两个文件,但是现在我都遇到了一个错误,我正在尝试使用x86文件夹中的文件cv2。 每当我import cv2我遇到此错误:

1
2
3
4
5
6
RuntimeError: module compiled against API version 0xa but this version of numpy is 0x9

Traceback (most recent call last):
  File"<pyshell#1>", line 1, in <module>
    import cv2
ImportError: numpy.core.multiarray failed to import

我尝试了一切,安装了numpy 1.8,重新安装了它,重新安装了其他版本的python,将文件添加到环境变量中,但我在这里呆了将近一周。 另外,我已经下载了cygwin64,但是在删除python 3之后(也许是巧合),现在它找不到任何命令,例如pip install等。
如果有人可以帮助我,我将非常感激。


Numpy为C API使用单独的版本号。 每当对C API进行任何更改时,此数字都会增加(无论二进制兼容性是否中断)。 由于更改很少,因此在Numpy版本和C API版本之间没有1:1映射。

该错误消息表明,与最初使用OpenCV构建的Numpy版本相比,该版本提供了C-API的较旧版本。

源代码中有一个方便的表格。 由于很难找到它,所以让我在这里重现它:

1
2
3
4
5
6
7
8
9
10
11
C API Version | Numpy Version
0x00000008    - 1.7.x
0x00000009    - 1.8.x
0x00000009    - 1.9.x
0x0000000a    - 1.10.x
0x0000000a    - 1.11.x
0x0000000a    - 1.12.x
0x0000000b    - 1.13.x
0x0000000c    - 1.14.x
0x0000000c    - 1.15.x
0x0000000d    - 1.16.x

注意:最近更新于2019-04-11。

根据该表,您应该将Numpy升级到以下任何版本:1.10.x,1.11.x,1.12.x


这花费了一些时间,但是我终于找到了API版本和numpy版本的表格。 基于此,我想您需要numpy 1.10.x或1.11.x或1.12.x。 – Dan Ma?ek