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



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

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安装等。如果有人能帮助我,我将不胜感激。

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

错误消息表明您有一个版本的 Numpy,与 OpenCV 最初构建的版本相比,它提供了 C-API 的旧版本。

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

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
0x0000000d - 1.19.x
0x0000000e - 1.20.x
0x0000000e - 1.21.x
0x0000000f - 1.22.x
0x00000010 - 1.23.x
0x00000010 - 1.24.x

注意:最后更新于 2022-10-14。

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

这花了一点时间,但我终于找到了 API 版本与 numpy 版本的表格。基于此,我会说你需要numpy 1.10.x或1.11.x或1.12.x。

最新更新