mac 升级新系统后下载 nodesass 报错

377 阅读2分钟

前言

在升级 mac 最新系统 macOS Ventura 之后,发现开发老项目下载 node-sass 的时候会报错,提示 #Can't find Python executable 'python。在网上寻找了一会发现中文资料中这个问题被提及的很少,在这里记录一下。

问题原因

下载 node-sass 的时候会用上 node-gyp,而 node-gyp 在运行过程中会用上 python。mac 在 Monterey 12.3 后移除了 python 2 环境,所以这个时候会提示我们没有 python 环境。

如何解决

从原因中我们就可以发现我们自己装一下 python 环境就好了,但是这里我查阅英文资料发现有多个解决办法。

如果你只需要解决这个报错请看方法一;如果你有 python 版本需求,请看方法二;如果你需要设置最新的 python 版本,请看方法三。

PS:方法三本人并没有实测仅是通过网上查阅资料获得。

直接从官网安装 2.7.18(最简单的办法)

直接在下面的网站选择自己对应的安装包下载即可。

Python 2.7.18 下载

版本控制安装 python 2(我采用的这种方式)

  1. 安装 pyenv(pyenv 跟 nvm、volta 类型都是版本控制器)
brew install pyenv
  1. 安装 2.7.18 版本
pyenv install 2.7.18

这里可能会下载很慢,我这边设置源后也很慢。后来我是直接下载 2.7.18,利用离线下载安装完毕(~/ 下创建 .pyenv/cache,扔进去下载好的 python,再执行 pyenv install 2.7.18 就离线下载完毕了)。

  1. 设置全局版本
pyenv global 2.7.18
  1. 将 python 可执行目录添加到 PATH
export PATH="${HOME}/.pyenv/shims:${PATH}"

你可以用 echo $PATH 来进行检查

  1. 将 python 可执行目录添加到.npmrc
npm config list 

你可以用 npm config list 来进行检查

安装 python 3 并设置默认版本

详情请见: