OpenCV/OpenCV 강좌

OpenCV 빌드 후 ModuleNotFoundError: No module named 'cv2' 에러 해결

webnautes 2023. 10. 28. 05:42
반응형

OpenCV 빌드하여 설치 후 Python에서 cv 모듈을 로드시 다음 에러가 발생한 경우 해결한 방법입니다. 

ModuleNotFoundError: No module named 'cv2'

 

상황에 따라선 다른 방법이 필요할 수도 있습니다.



2022. 11. 25  최초작성

2022. 11. 26



우선 cv2 모듈 파일 위치를 찾았습니다.

find /usr | grep cv2 명령으로 검색하여 다음처럼 찾았습니다. 

 

/usr/local/lib/python3.8/site-packages/cv2.cpython-38-x86_64-linux-gnu.so

 

다음처럼 복사해주고 나서 해결되었습니다. 

파이썬마다 라이브러리 모듈을 찾을데 검색되는 디폴트로 사용하는 dist-packages 디렉토리 위치가 다른데 엉뚱한 곳에 복사되어 있어 문제가 생긴듯합니다.

cv2 모듈이 복사되는 위치는 리눅스에 설치된 파이썬 환경에 따라 다를 수 있습니다. 

 

sudo cp /usr/local/lib/python3.8/site-packages/cv2.cpython-38-x86_64-linux-gnu.so /usr/lib/python3/dist-packages/



또 다른 방법은 cmake 실행시 파이썬 모듈의 위치를 찾는 위치를 지정해주면 됩니다. 

 

우선  Python이 라이브러리를 인식하는 위치를 확인합니다. 여기에선 보라색으로 표시한 경로입니다. 

 

$ python3 -m site

sys.path = [

    '/mnt/c/Users/webnautes',

    '/usr/lib/python310.zip',

    '/usr/lib/python3.10',

    '/usr/lib/python3.10/lib-dynload',

    '/home/webnautes/.local/lib/python3.10/site-packages',

    '/usr/local/lib/python3.10/dist-packages',

    '/usr/lib/python3/dist-packages',

]

USER_BASE: '/home/webnautes/.local' (exists)

USER_SITE: '/home/webnautes/.local/lib/python3.10/site-packages' (exists)

ENABLE_USER_SITE: True

 

OpenCV 빌드를 위한 cmake 명령시 다음처럼 옵션을 추가해주면 됩니다. 추가한 경로에서 cv2 모듈을 찾게 됩니다. 

  -D PYTHON3_PACKAGES_PATH=/usr/local/lib/python3.10/dist-packages

 

반응형