我试图在代码中使用node 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
感谢您解决此问题的任何帮助