无法在M1 Mac上安装OpenCV Python

2024-05-19 00:40:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直遵循这个线程(https://trayansh.medium.com/setting-machine-learning-environment-on-m1-mac-apple-silicon-959836bf494d),成功安装了TensorFlow,但在为openCV创建配置文件(Cmake命令)时,它给了我一个错误:-

CMake Error at cmake/OpenCVModule.cmake:354 (message):
  Duplicated modules LOCATIONS has been found
Call Stack (most recent call first):
  cmake/OpenCVModule.cmake:371 (_assert_uniqueness)
  modules/CMakeLists.txt:7 (ocv_glob_modules)

我已经试着安装了两天了,没有任何进展(

我使用的CMake命令是

cmake \
-DCMAKE_SYSTEM_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DWITH_OPENJPEG=OFF \
-DWITH_IPP=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/Users/yashdhingra/Documents/Python/opencompile/opencv-4.5.0/modules \
-D PYTHON3_EXECUTABLE=/opt/homebrew/Caskroom/miniforge/base/envs/MLenv/python3 \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON ..

我确实按照指南中的说明更改了模块和虚拟环境python的路径


Tags: install命令buildcmakemodulesonopencvexamples
2条回答

此CMake错误(已找到重复的模块位置)是因为您将额外的模块路径指向要从中构建的主opencv模块。 您需要将额外模块路径设置为opencv contrib,而不是opencv

OPENCV_EXTRA_MODULES_PATH=/Users/yashdhingra/Documents/Python/opencompile/opencv_contrib-4.5.0/modules

您可能已经将额外的模块复制到了主模块目录中,然后使用-D OPENCV_extra_modules_PATH=/opt/OpenCV3.4/modules来定位此模块。但是模块定位器查看目录中的所有模块;此外,它还要求每个模块都是唯一的,并且只能看到一次。由于默认情况下,当您指定此cmake选项时,cmake会查看主/module目录中的所有模块,然后再次查看EXTRA_modules路径中的所有模块,因此它会感到困惑,认为它会看到完全相同的模块两次,然后会呕吐

解决方案1:如果手动将所有额外模块包含到默认系统模块文件中,则不要在cmake指令中指定-D OPENCV_EXTRA_MODULES_PATH=/opt/OpenCV3.4/MODULES。它只会检查这个目录一次,并且会很高兴地编译所有目录

解决方案2:将额外模块保留在各自单独的目录中,并指定cmake选项-D OPENCV_extra_modules_PATH=/my_extra_modules_目录,该目录与主/modules目录分开

相关问题 更多 >

    热门问题