Mac M1 Big Sur系统npm安装opencv4nodejs报未找到OpenCV库错误
M1芯片Big Sur系统安装opencv4nodejs报错解决方案
报错根因
安装流程中断来自两个配置/环境问题的叠加:
- 你此前手动设置的
OPENCV4NODEJS_DISABLE_AUTOBUILD环境变量,直接跳过了opencv4nodejs包自带的OpenCV自动编译流程 - 安装脚本默认到
/usr/local/lib路径检索OpenCV动态库,一方面M1芯片的Homebrew默认安装路径并非/usr/local,另一方面你本地也没有预先安装适配Arm64架构的OpenCV库,检索不到文件时直接抛出终止错误
操作步骤
- 移除无效环境变量
执行env | grep OPENCV排查已生效的OpenCV相关配置,删除/.zshrc、/.bash_profile中所有OPENCV4NODEJS_DISABLE_AUTOBUILD的配置行,执行source ~/.zshrc使配置生效 - 安装Arm64架构适配的OpenCV
执行brew install opencv完成OpenCV的本地安装,安装完成后运行ls /opt/homebrew/lib | grep libopencv校验,能匹配到一系列libopencv开头的dylib文件即代表安装正常 - 重新执行npm安装
首次安装可直接在当前终端指定库路径执行命令:OPENCV_LIB_DIR=/opt/homebrew/lib npm install opencv4nodejs
需要长期生效的话,可在~/.zshrc中添加export OPENCV_LIB_DIR=/opt/homebrew/lib,source后即可正常使用常规npm安装命令
避坑提示
- 禁止使用Rosetta转译的x86终端执行安装操作,必须使用原生Arm64终端运行node、npm命令,否则会触发架构不匹配的二次报错
- 安装前执行
npm cache clean --force清理旧缓存,删除项目中node_modules下残留的opencv相关文件,避免旧安装产物干扰 - 日志中出现的npm WARN peer依赖提示,均为项目内其他前端包的版本兼容性提示,和OpenCV安装失败无关联,待OpenCV安装完成后再单独处理对应peer依赖即可
内容的提问来源于stack exchange,提问作者Vanka Manikanth
相关产品推荐
相关产品推荐

