我试图在我的代码中使用节点 opencv 。npm install
工作正常,并且项目中内置了正确的 node_modules。但是当我尝试运行项目时,会出现以下错误。
Error: Cannot find module '/home/.../node_modules/opencv/build/opencv/v6.0.0/Release/node-v14-linux-x64/opencv.node'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/.../node_modules/opencv/lib/bindings.js:4:15)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/home/.../node_modules/opencv/lib/opencv.js:7:27)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
Process finished with exit code 1
正如您在第一行中看到的那样,它搜索文件夹../node-v14-linux-x64/..
但我的节点模块版本是 57(节点 v8.11.1)
这是生成上述路径的代码的地方。(node_modules/opencv/lib/bindings.js)
var binary = require('node-pre-gyp');
var path = require('path');
var binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')), { debug: !!process.env.NODE_OPENCV_DEBUG });
var binding = require(binding_path);
这就是我的 opencv 在 node_modules 中的样子
如您所见,为节点模块编号 57 创建了目录,但 bindings.js 正在寻找模块编号 14。
这些是我正在使用的版本,
node -v
v8.11.1
npm -v
5.6.0
nvm version
v8.11.1
感谢任何帮助解决此问题