gyp verb `which` failed Error: not found: python2

文章讲述了在使用node-sass时遇到的编译错误,由于缺少python2,给出了下载python2的链接以及在NPM中临时和长期切换python版本的解决方案,包括Windows和Linux系统的具体步骤。

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

一、问题描述:

error D:\workspace\xxx\node_modules\node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments:
Directory: D:\workspace\xxx\node_modules\node-sass
Output:
Building: E:\nodejs\node.exe D:\workspace\xxx\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli   'E:\\nodejs\\node.exe',
gyp verb cli   'D:\\workspace\\xxx\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library='
gyp verb cli ]
gyp info using node-gyp@3.8.0
gyp info using node@16.18.0 | win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (D:\workspace\xxx\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (D:\workspace\xxx\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (D:\workspace\xxx\node_modules\which\which.js:80:29)
gyp verb `which` failed     at D:\workspace\xxx\node_modules\which\which.js:89:16
gyp verb `which` failed     at D:\workspace\xxx\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:202:21)
gyp verb `which` failed  python2 Error: not found: python2
gyp verb `which` failed     at getNotFoundError (D:\workspace\xxx\node_modules\which\which.js:13:12)
gyp verb `which` failed     at F (D:\workspace\xxx\node_modules\which\which.js:68:19)
gyp verb `which` failed     at E (D:\workspace\xxx\node_modules\which\which.js:80:29)
gyp verb `which` failed     at D:\workspace\xxx\node_modules\which\which.js:89:16
gyp verb `which` failed     at D:\workspace\xxx\node_modules\isexe\index.js:42:5
gyp verb `which` failed     at D:\workspace\xxx\node_modules\isexe\windows.js:36:5
gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:202:21) {
gyp verb `which` failed   code: 'ENOENT'
gyp verb `which` failed }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` succeeded python E:\Python310\python.EXE
gyp ERR! configure error
gyp ERR! stack Error: Command failed: E:\Python310\python.EXE -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack   File "`<string>`", line 1
gyp ERR! stack     import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
gyp ERR! stack SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?
gyp ERR! stack
gyp ERR! stack     at ChildProcess.exithandler (node:child_process:402:12)
gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
gyp ERR! stack     at maybeClose (node:internal/child_process:1100:16)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
gyp ERR! System Windows_NT 10.0.19045
gyp ERR! command "E:\\nodejs\\node.exe" "D:\\workspace\\xxx\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd D:\workspace\xxx\node_modules\node-sass
gyp ERR! node -v v16.18.0

二、解决方案:

python2下载地址:

https://www.python.org/downloads/release/python-2718/

NPM运行项目时切换不同版本的python?
临时使用:
npm install --python=python3.2
1.设置为长期使用:
npm config set python python3.2
2.windows系统还可以使用以下方式:
npm install --python=C:\Python27\python.exe

npm install --python=C:\Users\yzh.windows-build-tools\python27\python.exe
3.Linux系统:

export PYTHON=python3.2
或者
set PYTHON=python3.2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓风伴月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值