Return process.dlopen(module, path._makeLong (имя файла));
Я получаю эту ошибку при запуске примера из OpenCV Node
return process.dlopen(module, path._makeLong(filename));
^
Error: /home/sunny/face/build/opencv/v5.0.0/Release/node-v46-linux-x64/opencv.node: undefined symbol: _ZNK2cv9Algorithm5writeERNS_11FileStorageE
at Error (native)
at Object.Module._extensions..node (module.js:460:18)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:313:12)
at Module.require (module.js:366:17)
at require (module.js:385:17)
at Object. (/home/sunny/face/lib/bindings.js:4:15)
at Module._compile (module.js:435:26)
at Object.Module._extensions..js (module.js:442:10)
at Module.load (module.js:356:32)
Ответы
Ответ 1
Попробуйте обновить установленные модули с помощью
$ rm -rf node_modules/
$ npm update
У меня были ошибки, связанные с process.dlopen
при использовании Gulp и node -sass. Очистка установленных модулей исправила проблему для меня.
EDIT: не известно, как работает OpenCV (или что это на самом деле), но я полагаю, что он обрабатывает модули NodeJS аналогично обычным приложениям NodeJS, где вы можете обновить коллекцию модулей.
Ответ 2
Вы должны проверить свою установку OpenCV, она, вероятно, либо отсутствует/не может быть найдена, либо ее версия не поддерживается связыванием OpenCV node. Предполагая, что вы используете модуль opencv
в npm, его readme говорит, что версии OpenCV от версии 2.3.1 до версии v.0.0.0 (полностью) поддерживается.
Ответ 3
Я выполнил эти команды, но безуспешно
$ rm -rf node_modules/
$ npm update
Единственное, что мне помогло, было
yarn add node-sass
Наконец, мои узлы были успешно установлены.
Ответ 4
В моем случае у меня есть node_modules
на моем .dockerignore
node_modules
upload
export
converage
.git
.tmp
.vscode
.github
.env
Но мне все еще нужно, чтобы docker-compose
мог игнорировать папку node_modules
.
services:
api:
build: .
command: npm run dev
volumes:
- '.:/usr/src/app'
- /usr/src/app/node_modules/
ports:
- "3000:3000"
Я думаю, что docker-compose
пропустит копирование node_modules
встроенного для MacOS, в контейнер Linux.
Добавьте том в Docker, но исключите подпапку
Ответ 5
Используйте эту команду, она отлично работает:
npm rebuild bcrypt --build-from-source