Mac M1 Pro执行npm install时node-gyp重建报错:找不到python
关键报错信息
env: python: No such file or directory
make: *** [Release/snappy.a] Error 127
gyp ERR! build error
gyp ERR! stack Error:makefailed with exit code: 2
原因分析
你的MacOS Monterey系统安装了Python 3.8.9,但系统默认未将python命令映射到Python3,而node-gyp编译snappy时调用了python命令,导致找不到可执行文件,最终编译失败。另外npm当前使用的是自带的node-gyp v5.1.0,而非你全局安装的v9.1.0,版本差异也可能引发兼容性问题。
解决步骤
临时映射Python命令:在终端执行
alias python=python3,然后重新运行npm install。如果需要永久生效,将该命令添加到~/.zshrc或~/.bash_profile,再执行source ~/.zshrc(对应zsh)或source ~/.bash_profile(对应bash)。配置npm指定Python路径:执行
npm config set python python3,配置完成后重新执行npm install。更新npm自带的node-gyp:执行以下命令更新到你已安装的v9.1.0版本,提升兼容性:
npm install -g node-gyp@9.1.0 npm rebuild node-gyp之后再运行
npm install。尝试Rosetta 2兼容模式:如果以上方案无效,右键终端应用→「显示简介」→勾选「使用Rosetta打开」,重启终端后再执行
npm install。
内容的提问来源于stack exchange,提问作者Sanjay Hp

