执行npm install时node-gyp持续抛出Python语法错误如何解决?
报错根因
- 你使用的
node-gyp@3.8.0是较老版本,仅支持Python 2.x环境,当前系统默认绑定的Python版本为3.9,Python 3要求print语法必须带括号,和老版本语法不兼容,因此执行版本检测命令时抛出语法错误 - 触发编译的依赖包
iltorb已经停止维护,Node.js v10及以上版本已经内置了Brotli压缩的原生API,无需额外安装该第三方依赖
解决方案
方案1:替换弃用依赖(优先选择)
直接移除项目中对iltorb的依赖,使用Node.js内置的zlib.brotliCompress/zlib.brotliDecompress API,或者替换为仍在维护的brotli包,从根源上避免编译报错。
方案2:单独配置Python 2.7路径
如果暂时无法替换依赖,可以单独为npm指定Python 2.7的安装路径,无需修改全局环境变量:
- 本地安装Python 2.7,安装时不要勾选添加到系统PATH
- 执行命令配置npm的Python路径:
npm config set python C:\Python27\python.exe
路径替换为你实际安装Python 2.7的本地路径
- 重新执行
npm install即可。
方案3:升级node-gyp兼容Python 3
高版本node-gyp已经支持Python 3环境,你可以安装全局高版本node-gyp覆盖项目依赖自带的旧版本:
- 全局安装最新版node-gyp:
npm install -g node-gyp@latest
- 配置npm使用全局node-gyp:
npm config set node_gyp "C:\Users\你的用户名\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js"
路径替换为你本地全局npm包的实际存储路径
- 重新执行
npm install。
内容的提问来源于stack exchange,提问作者Charles Ekube
相关产品推荐
相关产品推荐

