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

Art*_*kas 3 opencv numpy python-2.7

我是opencv的新手,几天前我尝试安装它。我安装了所有内容并将cv2文件从opencv移至python 2.7。我厌倦了浏览这两个文件,但是现在我都出错了,我正在尝试使用x86文件夹中的文件cv2。每当我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
Run Code Online (Sandbox Code Playgroud)

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

Dan*_*šek 5

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

该错误消息表明,与最初使用OpenCV构建的Numpy版本相比,该版本提供了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
Run Code Online (Sandbox Code Playgroud)

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

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


Art*_*kas 0

这花了一些时间,但我终于找到了 API 版本与 numpy 版本的表格。基于此,我想说你需要 numpy 1.10.x 或 1.11.x 或 1.12.x。\xe2\x80\x93 丹马\xc5\xa1ek

\n