Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
38 views
in Technique[技术] by (71.8m points)

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

I'm new to the world of opencv and few days ago I tried to install it. I installed everything and moved the cv2 file from opencv to python 2.7. I tired oving both files but with both I'm having an error now I'm trying with file cv2 from folder x86. Whenever I import cv2 I'm having this error :

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

I tried everything, installing numpy 1.8 reinstalling it, reinstalling other versions of python, adding files to the environmental variables and I'm stuck here for almost week. Also, I have downloaded cygwin64 but after I deleted python 3 (or perhaps it is a coincidence) now it doesn't find any commands like pip install and so on. If someone could help me I would really appreciate it.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Numpy uses a separate version number for the C API. Whenever any changes are made to the C API, this number is increased (irrespective of whether binary compatibility was broken or not). Since the changes are infrequent, there is no 1:1 mapping between Numpy versions and the C API version.

The error message suggests that you have a version of Numpy that provides an older revision of the C-API, compared to what OpenCV was originally built with.

There is a handy table in the source code. Since it was a bit harder to find, let me reproduce it here:

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
0x0000000e    - 1.22.x

Note: Last updated 2021-05-24.

Based on that table, you should upgrade Numpy to any of the following versions: 1.10.x, 1.11.x, 1.12.x


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...