1 원인 : ffmpeg
Traceback (most recent call last):
File "your_path/path/test.py", line 3, in <module>
import cv2
File "/your_path/your_venv/lib/python3.9/site-packages/cv2/__init__.py", line 5, in <module>
from .cv2 import *
ImportError: dlopen(/your_path/your_venv/lib/python3.9/site-packages/cv2/cv2.cpython-39-darwin.so, 2): Library not loaded: /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib
Referenced from: /your_path/your_venv/lib/python3.9/site-packages/cv2/cv2.cpython-39-darwin.so
Reason: image not found
opencv를 import 하던 도중 위와 같은 에러가 나면서 실행이 안됬다.
ffmpeg/lib/libavcodec.58.dylib when running cv2.cpython-39-darwin.so.
위 문제의 경우 위와 같이 ffmpeg관련 부분에서 에러가 생긴 것이다.
라이브러리가 로드되지 않음: /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib
호환되지 않는 amd64 버전의 ffmpeg를 설치한 다음 OpenCV에서 로드하려고 하기 때문에 발생하는 것이라고 한다.
m1 mac의 호환문제다.
아래 방법 중 하나로 ffmpeg 설치를 해주자
2. brew로 설치
brew install ffmpeg
3. 그 밖의 해결 방법 : 콘다로 설치
conda install -c conda-forge ffmpeg
4. 그 밖의 해결 방법 : port로 설치
m1 mac에서 homebrew가 문제가 많아(?) MacPorts도 많이 쓴다고 한다
아래 주소에서 다운받는다
https://www.macports.org/install.php
The MacPorts Project -- Download & Installation
Quickstart Install Xcode and the Xcode Command Line Tools Agree to Xcode license in Terminal: sudo xcodebuild -license Install MacPorts for your version of the Mac operating system: Installing MacPorts MacPorts version 2.7.1 is available in various formats
www.macports.org
pkg 파일이 다운되고 설치가 끝나면 터미널에 아래 명령어를 입력한다
sudo port install ffmpeg
참고 : https://blog.roboflow.com/m1-opencv/