解决 node-gyp 错误问题|node与python版本不匹配报错|node-gyp|vue

gyp info using node-gyp@3.8.0
npm ERR! gyp info using node@14.15.0 | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2.7" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2.7
npm ERR! gyp verb `which` failed     at getNotFoundError (F:\my_download\001components-master\001components-master\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (F:\my_download\001components-master\001components-master\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (F:\my_download\001components-master\001components-master\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at F:\my_download\001components-master\001components-master\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at F:\my_download\001components-master\001components-master\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at F:\my_download\001components-master\001components-master\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:183:21)
npm ERR! gyp verb `which` failed  python2.7 Error: not found: python2.7
npm ERR! gyp verb `which` failed     at getNotFoundError (F:\my_download\001components-master\001components-master\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (F:\my_download\001components-master\001components-master\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (F:\my_download\001components-master\001components-master\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at F:\my_download\001components-master\001components-master\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at F:\my_download\001components-master\001components-master\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (fs.js:183:21) {
npm ERR! gyp verb `which` failed   code: 'ENOENT'
npm ERR! gyp verb `which` failed }
npm ERR! gyp verb could not find "python2.7". checking python launcher
npm ERR! gyp verb could not find "python2.7". guessing location
npm ERR! gyp verb ensuring that file exists: C:\Python27\python.exe
npm ERR! gyp ERR! stack Error: Can't find Python executable "python2.7", you can set the PYTHON env variable.
npm ERR! gyp ERR! stack     at PythonFinder.failNoPython (F:\my_download\001components-master\001components-master\node_modules\node-gyp\lib\configure.js:484:19)
npm ERR! gyp ERR! stack     at PythonFinder.<anonymous> (F:\my_download\001components-master\001components-master\node_modules\node-gyp\lib\configure.js:509:16)
npm ERR! gyp ERR! stack     at callback (F:\my_download\001components-master\001components-master\node_modules\graceful-fs\polyfills.js:295:20)
npm ERR! gyp ERR! stack     at FSReqCallback.oncomplete (fs.js:183:21)
npm ERR! gyp ERR! System Windows_NT 10.0.18363
npm ERR! gyp ERR! command "C:\\maomao\\nodejs\\node.exe" "F:\\my_download\\001components-master\\001components-master\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbonpm ERR! gyp ERR! cwd F:\my_download\001components-master\001components-master\node_modules\node-sass
npm ERR! gyp ERR! node -v v14.15.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

npm ERR! A complete log of this run can be found in:

项目要用到node-gyp(给爷爬)

mac上没问题 windows有问题

看上面的日志, 提到了 python2.7

看来这个模块用的上古时代的python2.7的技术

windows的同学可以先安装 python2 这里下载:  https://www.python.org/ftp/python/2.7/python-2.7.amd64.msi

不要修改路径!! 不要修改路径!! 等他安装到 C:\python2.7\ 目录下面哈. 这样不会影响你的 python3+体系

安装了python再执行  npm config set python python2.7 表示npm中凡是遇到python命令统一修正为执行python2.7

再执行 npm install node-gyp 就好了, 是不是很顺利哇?

以后如又有其他的包用的python3遇到报错的话那么可以使用 npm config delete python 这样恢复npm命令的python版本环境变量( npm config list 查看)

------------------------

win10了解WSL的同学完全可以切换到WSL里面编码哈,支持热更新.什么node-gyp上面这些问题都不会遇到.  WSL2还没试过(因为WSL用着挺顺手)

----------------------

总结:

  1. 默认安装python2.7
  2. 映射npm config set pytyon python2.7
上一篇:React 创建项目报错


下一篇:gyp: Undefined variable module_name in binding.gyp while trying to load binding.gyp