【经验记录】为什么安装node时会依赖Python
现象
今天在工作中启动一个老项目需要用到14版本的node.js,用nvm安装的时候报了如下的错。暂且不说Python版本不兼容的问题,我首先冒出来的疑问是:node为什么依赖Python?
查了一些资料后发现是node-gyp依赖了python,而它是什么呢?
GYP是一个构建系统生成工具,可以根据不同平台特性生成相应的项目构建文件。例如,在Windows平台上,node-gyp依赖于Visual C++构建环境来编译原生模块;而在Linux或Mac系统上,它主要依赖于gcc或clang编译器。
观察到,在这个报错之前有另外一段报错
查了资料后发现,这是因为node官方没有为所用的arm架构的芯片提供编译好的下载文件,所以会报404。在发现文件不存在之后,nvm会尝试用node-gyp从源码编译node,这就出现了开头看到的python的报错。
解决方法
在本地安装符合要求的版本的python之后重新安装node即可
brew install python#3.10
nvm install v14
参考资料
https://docs.pingcode.com/ask/ask-ask/178419.html
https://blog.csdn.net/Guzarish/article/details/144388046