关于node.js:win10-opencv4nodejs-安装-踩坑实况

3次阅读

共计 3404 个字符,预计需要花费 9 分钟才能阅读完成。

官网教程: https://www.npmjs.com/package…

!!!以下操作均在 powershell(管理员模式)中实现!!!

1. 装置 cmake(请自行装置并且实现环境配置)

powerhsell 下输出:

cmake --version

呈现如下提醒则装置胜利

cmake version 3.21.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

2. 装置 git(请自行装置并实现环境配置)

powerhsell 下输出:

git --version

呈现如下提醒则装置胜利

git version 2.31.1.windows.1

3. windows build tools

npm install --global --production windows-build-tools

不论你有没有 visual studio 2017/2019(不是带 CODE 的那个), 都能够装置这个 build tools
这个也有相干的坑, 请查看
https://blog.csdn.net/weixin_…

4. 装置 opencv4nodejs(巨坑)

千万不要应用主动装置脚本, 肯定要手动装置

3.1 设置手动装置

# on windows:
set OPENCV4NODEJS_DISABLE_AUTOBUILD=1

3.2 查看 chocolatey 版本, 如果没有装置则自行装置

choco --version

呈现这行绿字就是胜利了

Chocolatey v0.10.15

3.3 装置 opencv

# to install OpenCV 4.1.0
choco install OpenCV -y -version 4.1.0

这个 opencv 不是 opencv4nodejs, 然而前面有大用
记住它的装置门路, 我的是在 ’C:\tools\opencv’

3.4 为 opencv 增加环境变量

在刚刚装置的 opencv 门路下, 有一个 build 文件夹, 外面蕴含着咱们须要的所有货色

OPENCV_DIR
C:\tools\opencv\build

OPENCV_INCLUDE_DIR
C:\tools\opencv\build\include

OPENCV_BIN_DIR
C:\tools\opencv\build\x64\vc15\bin

OPENCV_LIB_DIR
C:\tools\opencv\build\x64\vc15\lib

x64 是 64 位
vc15 是 visual studio 2017, 代表我应用的是 2017 版本的 visual studio.
请确保这四个环境变量没有谬误, 这很重要

3.5 npm init

npm init


这将会在当前目录下创立一个 package.json 文件, 倡议切换到本人喜爱的目录, 不要在 C:\Windows\system32 目录下进行(这是 powerhsell 默认的目录)

3.6 关上刚刚创立好的 package.json 文件

一开始它长这个样子:

然而咱们要批改它, 全副删除, 而后替换成 opencv 官网要求的样子:

{
  "name": "my-project",
  "version": "0.0.0",
  "dependencies": {"opencv4nodejs": "^X.X.X"},
  "opencv4nodejs": {
    "disableAutoBuild": 1,
    "opencvIncludeDir": "C:\\tools\\opencv\\build\\include",
    "opencvLibDir": "C:\\tools\\opencv\\build\\x64\\vc14\\lib",
    "opencvBinDir": "C:\\tools\\opencv\\build\\x64\\vc14\\bin"
  }
}

留神:此处 json 文件用的是 vc14 的 visual studio 2015, 如果你用的 vc15, 也就是 visual studio 2017, 请自行更改!!!

3.7 最初的装置!

npm install -g opencv4nodejs

此处 ’-g’ 代表 global, 意为:windows 零碎下任何用户均可应用此软件, 即 opencv4nodejs
同时, 环境变量中的零碎变量将会被利用。

OVER

报错一览:

1. 没有实现初始化

ENOENT: no such file or directory, open 'C:\Windows\system32\package.json'

解决方案:
请查看步骤 3.5, 3.6, 实现 npm 的初始化, 以及批改 package.json 文件

2. visual studio 相干问题

opencv 有且仅有应用 visual studio 2015, 2017 进行 build 的版本, 即上文中提到的 vc14, vc15。
!!!没有 visual studio 2019!!!

解决方案: 请自行设置 msvs_version

npm config set msvs_version 2017

3. 文件缺失

网上有很多相干的问题, 但我没有遇到, 所以无奈提供解决方案

4. windows-build-tools 装置卡住了!

Successfully installed Python 2.7

请返回这个链接, 感激这位大佬的解决方案:
https://blog.csdn.net/weixin_…

大略就是:
1. 把 windows-build-tools 主动下载的 C:\user\{用户名}\.windows-build-tools\python2.7 退出环境变量
2. 下载.net framework 的最新版本(我用的 4.7.2)
3. 批改C:\user\{用户名}\.windows-build-tools\build-tools-log.txt 文件, 最初一行增加
Variable: IsInstalled = 1, 骗这个程序说曾经装置完了, 而后程序就会认为装置完了, 就不会报错了.

5. package.json 没有配置

Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\15.0\Bin\MSBuild.exe ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:81:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:81:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\15.0\\Bin\\MSBuild.exe',
  path: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\15.0\\Bin\\MSBuild.exe',
  spawnargs: ['./OpenCV.sln', '/p:Configuration=Release', '/p:Platform=x64']

Github Issue:https://github.com/justadudew…

解决方案:
因为没有正确配置 package.json, 所以不能进行 MSBuild.exe
正如我说过的, opencv4nodejs 不反对 visual studio 2019, 所以请进行上文中 3.6 的操作, 手动配置 package.json 并且保障 visual studio 版本在 2015 或者 2017.

正文完
 0