No module named 'cv2'

SEUNGHWANLEE·2021년 5월 7일
0

TIL

목록 보기
4/9
post-thumbnail

clovaai, custom data를 생성하려다가 기존에 jupyter notebook에서도 오류없이 opencv를 사용했었는데

위와 같은 에러가 발생하였습니다.😂

원인을 알고자 경로의 문제인가 싶어서 지우고 다시 설치를 해보기도 하였고, python3 에서 설정되있는 환경설정도 찾아보았습니다. 하지만 모두 해당하지 않았고 결국 brew를 통해서 재설치를 하기로 하였습니다.


해결방법

먼저, brew update를 해줍니다.

brew update

업데이트가 끝나면 아래 명령어를 작성해줍니다.

brew install opencv3 --with-python3 --with-contrib

저는 참고로 --with 옵션이 작동하지 않아서 brew install opencv3 를 해주었습니다.

긴 시간 기다린 후에 python3의 버전을 확인해주세요.

python3 --version

저 같은 경우에는 Python 3.9.5 에 해당했습니다.

cd /usr/local/Cellar/opencv

위 경로로 이동하신 후에 해당 디렉토리에 있는 폴더로 이동해주세요. 저는 4.5.2 하나가 있어서 해당 디렉토리로 이동했습니다.

cd /usr/local/Cellar/opencv/4.5.2


제가 fish를 사용해서 명령어가 ll인데 ls로 사용해주시면 lib 란 폴더 있는지 확인해 주신 후 이동해주세요.

cd lib

본인 환경에 맞는 python version으로 이동해줍니다.

cd python3.9/site-packages/cv2/python-3.9

이동하시면 cv2.<python-version>.so 과 같은 파일을 발견할 수 있습니다 ! 저는 cv2.cpython-39-darwin.so가 있었습니다.

그 후에 터미널에서 python3 을 실행시켜 현재 시스템 path에 설정된 값을 확인합니다.

>>> import sys
>>> print(sys.path)
[
'',
'/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', 
'/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9', 
'/usr/local/Cellar/python@3.9/3.9.5/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', 
'/usr/local/lib/python3.9/site-packages', 
'/usr/local/Cellar/protobuf/3.15.8/libexec/lib/python3.9/site-packages'
]

여기서 /usr/local/lib/python3.9/site-packages 여기에 해당하는 path를 복사해주신 다음에 새로운 터미널에서 아래와 같이 입력해주시면 됩니다.

 ln -s /usr/local/Cellar/opencv/4.5.2/lib/python3.9/site-packages/cv2/python-3.9 /usr/local/lib/python3.9/site-packages/cv2

해당 설정을 마친 뒤 custom dataset을 성공적으로 마친 모습입니다 !

profile
잡동사니 😁

0개의 댓글