在搭载M1芯片的Mac电脑上安装OpenCV库,需要特别注意处理器架构的兼容性问题。M1芯片基于arm64架构,与大多数软件和库默认支持的amd64架构不兼容。因此,需要使用特定的工具和方法来确保安装的是兼容arm64架构的OpenCV版本。
首先,需要安装Homebrew,这是一个MacOS的依赖管理器。通过Homebrew,可以安装Miniforge,这是一个社区提供的轻量级Anaconda安装包,它使用conda-forge分支来安装包,该分支提供了大量兼容arm64架构的包。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install miniforge
conda init zsh
接下来,可以创建一个名为cv的虚拟环境,并指定Python版本为3.8.6。虚拟环境可以帮助隔离不同项目的依赖,避免系统路径和依赖的冲突。
conda create -n cv python=3.8.6
conda activate cv
最后,可以通过conda-forge安装OpenCV。这样,每次使用OpenCV时,只需激活名为cv的conda环境即可。
conda install -c conda-forge opencv
如果需要安装其他依赖,只需在激活环境后使用conda install命令即可。
为什么使用pip安装OpenCV可能会遇到问题
尽管使用pip安装OpenCV是一个选项,但pip并不总是安装arm64版本,而是尝试使用Rosetta运行amd64版本,这会导致问题。因此,推荐使用Miniforge,它专门支持arm64,并始终获取预编译的、能在M1上运行的arm64版本。
在使用M1芯片的Mac上安装OpenCV时,可能会遇到一些常见的错误,例如:
Library not loaded: /opt/homebrew/opt/ffmpeg/lib/libavcodec.58.dylib
这个错误是由于安装了不兼容的amd64版本的ffmpeg,然后尝试被OpenCV加载。这就是为什么推荐使用conda-forge版本的OpenCV包。