Nodejs node-gyp运行错误

本文讲述了在使用Node.js v16.10.0时遇到的node-sass编译问题,由于node-gyp不支持最新Python版本,通过降级Python到2.7.x并重新安装模块解决。关键在于理解版本兼容性对Node.js开发的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Nodejs node-gyp运行错误

  1. 现象
    控制台错误信息:
    npm ERR! path D:\WorkSpace\sc-new-ui\node_modules\node-sass
    npm ERR! command failed
    npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node-gyp rebuild
    npm ERR! gyp info it worked if it ends with ok
    npm ERR! gyp info using node-gyp@3.8.0
    npm ERR! gyp info using node@16.10.0 | win32 | x64
    npm ERR! gyp ERR! configure error
    npm ERR! gyp ERR! stack Error: Command failed: C:\Python39\python.EXE -c import sys; print “%s.%s.%s” % sys.version_info[:3];
    npm ERR! gyp ERR! stack File “”, line 1
    npm ERR! gyp ERR! stack import sys; print “%s.%s.%s” % sys.version_info[:3];
    npm ERR! gyp ERR! stack ^
    npm ERR! gyp ERR! stack SyntaxError: invalid syntax
    npm ERR! gyp ERR! stack
    npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:397:12)
    npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:390:28)
    npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1064:16)
    npm ERR! gyp ERR! stack at Socket. (node:internal/child_process:450:11)
    npm ERR! gyp ERR! stack at Socket.emit (node:events:390:28)
    npm ERR! gyp ERR! stack at Pipe. (node:net:672:12)
    npm ERR! gyp ERR! System Windows_NT 10.0.19041
    npm ERR! gyp ERR! command “C:\nodejs\node.exe” “D:\WorkSpace\sc-new-ui\node_modules\node-gyp\bin\node-gyp.js” “rebuild”
    npm ERR! gyp ERR! cwd D:\WorkSpace\sc-new-ui\node_modules\node-sass
    npm ERR! gyp ERR! node -v v16.10.0
    npm ERR! gyp ERR! node-gyp -v v3.8.0
    npm ERR! gyp ERR! not ok
    运行截图
    在这里插入图片描述

  2. 解决
    思路
    将运行环境python版本由3.9.7降到2.7.x
    实践
    卸载最新python3.9.x
    安装python2.7.x
    重新安装node-sass
    重新安装node-gyp

  3. 分析
    本人下载最新的nodejs(v16.10.0),内部插件node-gyp的版本是8.2.0;导致该问题的根本原因是因为node-gyp不支持默认最新的python,导致在编译的时候因获取python版本异常,最后编译终止!
    关键信息截图
    在这里插入图片描述
    报错命令在python2.7.18下运行成功截图
    在这里插入图片描述

    初始版本截图:
    在这里插入图片描述
    降级版本截图:
    在这里插入图片描述
    运行成功截图
    在这里插入图片描述

  4. 总结
    如果还是有问题,直接降级nodejs版本吧!

D:\00JVAV\Workspaces\springboot\library-manager\inc-view\node_modules\canvas>if not defined npm_config_node_gyp (node "D:\nvm\v12.17.0\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild ) else (node "D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild ) gyp ERR! find VS gyp ERR! find VS msvs_version not set from command line or npm config gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer gyp ERR! find VS looking for Visual Studio 2015 gyp ERR! find VS - not found gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8 gyp ERR! find VS gyp ERR! find VS ************************************************************** gyp ERR! find VS You need to install the latest version of Visual Studio gyp ERR! find VS including the "Desktop development with C++" workload. gyp ERR! find VS For more information consult the documentation at: gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows gyp ERR! find VS ************************************************************** gyp ERR! find VS gyp ERR! configure error gyp ERR! stack Error: Could not find any Visual Studio installation to use gyp ERR! stack at VisualStudioFinder.fail (D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:121:47) gyp ERR! stack at D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:74:16 gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:351:14) gyp ERR! stack at D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:70:14 gyp ERR! stack at D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:372:16 gyp ERR! stack at D:\nvm\v12.17.0\node_modules\npm\node_modules\node-gyp\lib
03-27
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值