安装说明
安装步骤
步骤如下,步骤比较繁琐,坑也比较多,如果在安装时遇到另外的问题请提问,我会尝试进行解答
如果打算自行安装opencv,按照如下步骤进行
安装opencv
# 首先通过brew安装opencv,并查看安装的opencv具体情况(所在目录)
brew install opencv@4
brew info opencv
将opencv配置到环境变量中,方便后续安装时读取
版本号/路径 请根据自己安装的opencv进行修改
# 版本号要根据你安装的opencv版本号进行修改,建议配置到profile文件中
export OPENCV4NODEJS_DISABLE_AUTOBUILD=1
export OPENCV_LIB_DIR=/opt/homebrew/Cellar/opencv/4.5.5_3/lib
export OPENCV_BIN_DIR=/opt/homebrew/Cellar/opencv/4.5.5_3/bin
# 这条目录要注意一下,确保配置进去的目录中包含opencv2文件夹
export OPENCV_INCLUDE_DIR=/opt/homebrew/Cellar/opencv/4.5.5_3/include/opencv4
确保电脑中已经安装nodejs,推荐使用nvm管理node多版本,方便根据需要切换,我安装的是16.16版本
通过npm安装@u4/opencv4nodejs项目
npm install -g @u4/opencv4nodejs
在命令行中执行语句,正式开始安装,如果安装后不报错,说明安装成功,可以在appium中尝试对应代码
build-opencv build
如果命令行安装时报opencv2/core.hpp
的错误,可以尝试将opencv安装目录下opencv2目录的上级目录 放入node_modules/@u4/opencv4nodejs/binding.gyp
文件中include_dirs
部分内,然后再次尝试执行步骤5的命令
7.命令执行成功不报错的话,node_modules/@u4/opencv4nodejs/build/Release
目录下会生成一个opencv4nodejs.node
文件,说明安装成功,之后可以使用命令将@u4下的opencv4nodejs文件夹软连接到node_modules文件夹内,以便appium执行时能够找到(因为我用的nvm,目录前半部分可能略有不同,请根据个人情况写相应路径)
ln -s /Users/xxx/.nvm/versions/node/v16.16.0/lib/node_modules/@u4/opencv4nodejs /Users/xxx/.nvm/versions/node/v16.16.0/lib/node_modules/opencv4nodejs
8.尝试在appium中执行语句实验是否能够成功执行
如果让安装程序自行下载编译安装opencv,按照如下步骤操作
确认电脑中已经安装辅助应用
因为M1系统默认已经不带有python2,安装时需要电脑中存在python2.7版本 官网下载链接
通过brew安装cmake brew install cmake
确认电脑中已经安装了ffmpeg,并且需要注意版本不能太高,建议opencv4.5.5搭配ffmpeg4.4使用
见上文步骤3
见上文步骤4
在命令行中执行语句,让安装程序自动下载和编译opencv
build-opencv --version 4.5.5 build
5.见上文步骤6
6.见上文步骤7
7.见上文步骤8
2 个赞
_123
(测试账号123+*%@)
2022 年8 月 2 日 11:10
2
ERR! install node-gyp failed and return Error Command failed: node-gyp build --jobs max --release
ERR! install gyp info it worked if it ends with ok
ERR! install gyp info using node-gyp@5.1.1
ERR! install gyp info using node@16.16.0 | darwin | arm64
ERR! install gyp ERR! build error
ERR! install gyp ERR! stack Error: You must run `node-gyp configure` first!
ERR! install gyp ERR! stack at ReadFileContext.<anonymous> (/usr/local/lib/node_modules/node-gyp/lib/build.js:43:20)
ERR! install gyp ERR! stack at ReadFileContext.callback (/usr/local/lib/node_modules/node-gyp/node_modules/graceful-fs/graceful-fs.js:123:16)
ERR! install gyp ERR! stack at FSReqCallback.readFileAfterOpen [as oncomplete] (node:fs:314:13)
ERR! install gyp ERR! System Darwin 20.4.0
ERR! install gyp ERR! command "/usr/local/bin/node" "/usr/local/bin/node-gyp" "build" "--jobs" "max" "--release"
ERR! install gyp ERR! cwd /usr/local/lib/node_modules/@u4/opencv4nodejs
ERR! install gyp ERR! node -v v16.16.0
ERR! install gyp ERR! node-gyp -v v5.1.1
ERR! install gyp ERR! not ok
ERR! install return code: 1`预先格式化的文本`
你的node-gyp是什么版本
正常来说node-gyp版本应该和你的nodejs匹配,你这个版本貌似有点太低了。。。
卸载掉重新安装一下再试试看吧
我本地装的是9.1.0版本
_123
(测试账号123+*%@)
2022 年8 月 3 日 01:12
4
ERR! install node-gyp failed and return Error Command failed: node-gyp build --jobs max --release
ERR! install gyp info it worked if it ends with ok
ERR! install gyp info using node-gyp@9.1.0
ERR! install gyp info using node@16.16.0 | darwin | arm64
ERR! install gyp ERR! build error
ERR! install gyp ERR! stack Error: You must run node-gyp configure
first!
ERR! install gyp ERR! stack at ReadFileContext. (/usr/local/lib/node_modules/node-gyp/lib/build.js:43:20)
ERR! install gyp ERR! stack at ReadFileContext.callback (/usr/local/lib/node_modules/node-gyp/node_modules/graceful-fs/graceful-fs.js:123:16)
ERR! install gyp ERR! stack at FSReqCallback.readFileAfterOpen [as oncomplete] (node:fs:314:13)
我用了9.1.0也不行,然后看提示执行这个命令node-gyp configure 报这个错
gyp: binding.gyp not found (cwd: /Users/liuhong) while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack at ChildProcess.onCpExit (/usr/local/lib/node_modules/node-gyp/lib/configure.js:284:16)
gyp ERR! stack at ChildProcess.emit (node:events:527:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:291:12)
gyp ERR! System Darwin 20.4.0
gyp ERR! command "/usr/local/bin/node" "/usr/local/bin/node-gyp" "configure"
gyp ERR! cwd /Users/liuhong
gyp ERR! node -v v16.16.0
gyp ERR! node-gyp -v v9.1.0
gyp ERR! not ok
完整日志发一下吧 放到txt文件里发出来,只有这一段不够详细
_123
(测试账号123+*%@)
2022 年8 月 3 日 02:12
6
error.txt (2.1 KB)
error2.txt (12.3 KB)麻烦老师帮忙看看
_123
(测试账号123+*%@)
2022 年8 月 3 日 02:37
7
liuhong@liuhonghongdeMacBook-Pro node_modules % brew info opencv
opencv: stable 4.5.2 (bottled)
Open source computer vision library
https://opencv.org/
/opt/homebrew/Cellar/opencv/4.5.2_4 (835 files, 120.6MB) *
Poured from bottle on 2022-08-03 at 10:32:25
/opt/homebrew/Cellar/opencv/4.5.2_4.bak (835 files, 120.6MB)
Poured from bottle on 2022-08-01 at 20:59:22
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/opencv.rb
License: Apache-2.0
==> Dependencies
Build: cmake ✔, pkg-config ✔
Required: ceres-solver ✔, eigen ✔, ffmpeg ✔, glog ✔, harfbuzz ✔, jpeg ✔, libpng ✔, libtiff ✔, numpy ✔, openblas ✔, openexr ✔, protobuf ✔, python@3.9 ✔, tbb ✔, vtk ✔, webp ✔
==> Analytics
install: 15,564 (30 days), 40,608 (90 days), 181,668 (365 days)
install-on-request: 15,018 (30 days), 39,246 (90 days), 174,922 (365 days)
build-error: 54 (30 days)
这会不会是个重要信息build-error: 54 (30 days)
是导入问题,发完整的日志看看不要节选。。。
从你执行build-opencv这一行命令开始 一直到结束
export OPENCV_INCLUDE_DIR=/opt/homebrew/Cellar/opencv/4.5.2_4/include/opencv4
然后source重新加载一下环境变量
brew安装的opencv4目录结构跟之前不太一样 include目录下不是直接放的opencv2而是多了一层opencv4目录
之后再重新运行一下试试看
_123
(测试账号123+*%@)
2022 年8 月 3 日 02:58
11
error2.txt (21.5 KB)
刚才重新跑一次是这个保存,和改了你说的这个环境变量前后一个报错
改完设置重新卸载安装一下node-gyp试试呢?
我之前也是改完一直加载不到对应的文件,即便文件目录没错,尝试重装了一次之后突然好了
/opt/homebrew/lib/node_modules/@u4 /opencv4nodejs
到这个目录下执行一下node-gyp configure 再试试?
_123
(测试账号123+*%@)
2022 年8 月 3 日 04:11
15
node-gyp configure 执行没问题,但是再试还是报那个错,看起来是执行node-gyp build --jobs max --release 这个报的错
直接原因就是导入头文件的时候没有找到opencv2/core.hpp
_123
(测试账号123+*%@)
2022 年8 月 3 日 05:31
17
这个openv2在哪啊,找不到,是不是要重装什么才会有
这个目录下没有么?这个头文件是opencv4自带的
_123
(测试账号123+*%@)
2022 年8 月 3 日 06:39
19
换成你的版本4.5.5_3 又报这个错
error2.txt (4.3 KB)
opencv4里面也有openv2
我给出了两种安装方法,你先确定好用哪一种
如果用的是自己安装opencv的方式,版本要写自己安装的版本,不要跟着我写的版本来写呀。。