python - 无法在 M1 Mac 上安装 OpenCV Python
问题描述
我一直在关注这个线程(https://trayansh.medium.com/setting-machine-learning-environment-on-m1-mac-apple-silicon-959836bf494d),成功安装了TensorFlow,但同时制作了配置文件(Cmake命令)对于openCV它给了我一个错误: -
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 ..
我确实按照指南中的说明更改了模块和 Virtual Env_python 的路径。
解决方案
您可能已将额外模块复制到主模块目录中,然后使用 -D OPENCV_EXTRA_MODULES_PATH=/opt/OpenCV3.4/modules 来定位它。但是模块定位器会查看目录中的所有模块;然后它还要求每个模块都是唯一的并且只能看到一次。由于 cmake 默认会查看主 /module 目录中的所有模块,然后在指定此 cmake 选项时再次查看 EXTRA_MODULES 路径中的所有模块,因此它会感到困惑,并认为它两次看到完全相同的模块,然后是呕吐物。
解决方案 1:如果您已手动将所有额外模块包含到默认系统模块文件中,则不要在 cmake 指令中指定 -D OPENCV_EXTRA_MODULES_PATH=/opt/OpenCV3.4/modules 。它只会检查这个目录一次,并且会愉快地编译所有这些。
解决方案 2:将额外的模块保存在自己的单独目录中,并指定 cmake 选项 -D OPENCV_EXTRA_MODULES_PATH=/my_extra_modules_directory 与主 /modules 目录分开。
推荐阅读
- python-3.x - 当您的字典中有一个值列表时该怎么办?
- sequelize.js - Sequelize raw SQL 查询 SELECT * FROM User 选择实际的数据库用户而不是我的用户表?
- c# - WPF - How to add an image to a uniformgrid button?
- javascript - 尝试从我的 node-webkit 应用程序打开 DevTools 时出现“无法访问此站点”错误
- java - 无法从套接字输入流中读取
- ramda.js - 为什么 Ramda 的 R.adjust 在浏览器中出现错误?
- javascript - 如何将链接文本更改为 HTML 中的图像
- python - 跨多个numpy数组应用函数的最快方法是什么
- python - Python 要求每 1 分钟按一次 ENTER 以继续计划
- python - 将所有字典值转换为比例