一、问题描述:
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