更新Brew并重装Node后,Node-sass与node-gyp报错的解决方法
回答:
解决node-sass构建失败(node-gyp找不到python2)的问题
我之前在Node v10环境下也碰到过完全一样的问题,核心原因是node-gyp(node-sass依赖的构建工具)在Node v10版本里只会找名为python2的可执行文件,但你的系统里的Python 2.7.10可能只是以python的名字存在,或者它的路径没被加入系统PATH。下面是几个亲测有效的解决办法:
方法1:临时指定Python路径(最快解决)
直接在执行yarn install时,通过环境变量告诉node-gyp去哪里找Python 2:
# macOS默认Python 2安装在/usr/bin/python,直接用这个路径 PYTHON=/usr/bin/python yarn install --save-dev
如果不确定自己的Python 2路径,可以先执行which python(如果输出的是2.7版本的路径),把上面的路径换成你自己的即可。
方法2:给Python 2创建python2别名(永久解决识别问题)
如果你的Python 2在/usr/bin/python,可以创建一个软链接让系统识别python2命令:
sudo ln -s /usr/bin/python /usr/local/bin/python2
创建完成后,验证一下是否生效:
which python2
如果输出/usr/local/bin/python2,就说明设置成功了,再重新执行yarn install --save-dev就能正常构建node-sass了。
方法3:全局配置node-gyp的Python路径(一劳永逸)
用npm的全局配置来指定node-gyp使用的Python版本,yarn会自动读取这个配置:
npm config set python /usr/bin/python
之后不管是用npm还是yarn安装依赖,node-gyp都会自动使用这个路径的Python 2,不用每次都手动指定。
额外排查点
如果以上方法都没用,先检查你的系统PATH里有没有包含/usr/bin(macOS默认Python 2的安装位置):
echo $PATH
如果没看到/usr/bin,就把它加入PATH:
export PATH="/usr/bin:$PATH"
再重新尝试安装依赖即可。
内容的提问来源于stack exchange,提问作者msupreme
相关产品推荐
相关产品推荐

