Trouble/OpenCV

import cv2 시 'numpy._DTypeMeta' object is not subscriptable 오류

침닦는수건 2023. 9. 4. 17:46
반응형

pip install opencv-python으로 cv2 설치하는 것은 아주 간단한데, 설치하고 나서 다음 오류가 떴다.

Traceback (most recent call last):
  File "/home/jseob/Desktop/yjs/codes/3DDFA_V2/demo.py", line 7, in <module>
    import cv2
  File "/home/jseob/anaconda3/envs/face/lib/python3.9/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/home/jseob/anaconda3/envs/face/lib/python3.9/site-packages/cv2/__init__.py", line 175, in bootstrap
    if __load_extra_py_code_for_module("cv2", submodule, DEBUG):
  File "/home/jseob/anaconda3/envs/face/lib/python3.9/site-packages/cv2/__init__.py", line 28, in __load_extra_py_code_for_module
    py_module = importlib.import_module(module_name)
  File "/home/jseob/anaconda3/envs/face/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/home/jseob/anaconda3/envs/face/lib/python3.9/site-packages/cv2/typing/__init__.py", line 69, in <module>
    NumPyArrayGeneric = numpy.ndarray[typing.Any, numpy.dtype[numpy.generic]]
TypeError: 'numpy._DTypeMeta' object is not subscriptable

TypeError: 'numpy._DTypeMeta' object is not subcriptable 이 오류 내용인데, 원인은 버전 문제다.

 

현재 numpy가 너무 구버전이라서 최신 opencv-python이 import 되지 않는 경우다. 

 

보통 numpy 1.24 이전과 이후로 나뉘는 것 같다. 해결법은 numpy를 최신 버전으로 올리거나 opencv-python 버전을 낮추는 것이다.

 

pip install numpy==1.21.6
pip install opencv-python=4.5.5.64

구버전을 굳이 써야한다면 위 버전들은 서로 호환된다. 

반응형