MacBook Pro M1搭建TensorFlow+OpenCV等依赖环境报错求助
M1 MacBook Pro(BigSur v11.6)TensorFlow目标检测环境OpenCV问题解决方案
优先推荐方案:pip安装预编译适配包(避过编译和依赖冲突)
- 先清理当前conda环境中所有opencv相关安装包
conda uninstall opencv opencv-python opencv-contrib-python -y
- 安装适配arm64架构的opencv预编译包,选择和TensorFlow 2.x兼容的4.5.x版本
pip install opencv-python==4.5.5.62 opencv-contrib-python==4.5.5.62
- 验证安装,执行以下命令无报错即成功
python -c "import cv2; import scipy; import sklearn; print('cv2版本:', cv2.__version__)"
此方案可同时解决opencv依赖错误、和scipy/scikit-learn冲突的问题,满足TensorFlow Model Zoo运行需求。
可选方案1:修复conda安装opencv的ffmpeg路径错误
- 先创建缺失的目标父目录
sudo mkdir -p /opt/homebrew/opt/ffmpeg/lib
- 将本地已有的ffmpeg库软链到期望读取路径
sudo ln -s /usr/local/Cellar/ffmpeg/4.4_2/lib/libav*.dylib /opt/homebrew/opt/ffmpeg/lib/
- 修复scipy/scikit-learn架构冲突,强制安装arm64版本
conda install scipy scikit-learn --platform osx-arm64
可选方案2:修正源码编译OpenCV的参数错误
你之前编译失败是因为CMAKE_INSTALL_PREFIX路径配置错误,且未指定ffmpeg的本地路径,修改后的cmake命令如下:
cmake \ -DCMAKE_SYSTEM_PROCESSOR=arm64 \ -DCMAKE_OSX_ARCHITECTURES=arm64 \ -DWITH_OPENJPEG=OFF \ -DWITH_IPP=OFF \ -DCMAKE_BUILD_TYPE=RELEASE \ -DCMAKE_INSTALL_PREFIX=/Users/adi/miniforge3/envs/silicon \ -DOPENCV_EXTRA_MODULES_PATH=/Users/adi/miniforge3/opencv_contrib-4.5.0/modules \ -DPYTHON3_EXECUTABLE=/Users/adi/miniforge3/envs/silicon/bin/python3.8 \ -DPYTHON3_PACKAGES_PATH=/Users/adi/miniforge3/envs/silicon/lib/python3.8/site-packages \ -DBUILD_opencv_python2=OFF \ -DBUILD_opencv_python3=ON \ -DINSTALL_PYTHON_EXAMPLES=OFF \ -DINSTALL_C_EXAMPLES=OFF \ -DOPENCV_ENABLE_NONFREE=ON \ -DBUILD_EXAMPLES=OFF \ -DWITH_FFMPEG=ON \ -DFFMPEG_INCLUDE_DIR=/usr/local/Cellar/ffmpeg/4.4_2/include \ -DFFMPEG_LIBRARY=/usr/local/Cellar/ffmpeg/4.4_2/lib \ /Users/adi/miniforge3/opencv-4.5.0
cmake执行成功后,使用多线程编译提升速度:
make -j8
编译完成后执行安装:
make install
内容的提问来源于stack exchange,提问作者Adriyana
相关产品推荐
相关产品推荐

