无法更改 node-gyp 使用的默认 python 版本?

Cannot change the default python version used by the node-gyp?

当我 运行 命令 node-gyp rebuild 命令时,我得到以下错误:

gyp info it worked if it ends with ok
gyp info using node-gyp@7.1.2
gyp info using node@9.6.1 | linux | x64
gyp info find Python using Python version 3.8.5 found at "/usr/bin/python3"
gyp WARN install got an error, rolling back install
gyp ERR! configure error 
gyp ERR! stack Error: ENOENT: no such file or directory, mkdir '/home/rando/.cache/node-gyp/9.6.1'
gyp ERR! System Linux 5.8.0-45-generic
gyp ERR! command "/home/rando/.nvm/versions/node/v9.6.1/bin/node" "/home/rando/.nvm/versions/node/v9.6.1/bin/node-gyp" "rebuild" "--python=/home/rando/.pyenv/versions/2.7.18/bin"
gyp ERR! cwd /home/rando/Desktop/git/master-node/node/browser_engines/src/browsers/webkit
gyp ERR! node -v v9.6.1
gyp ERR! node-gyp -v v7.1.2
gyp ERR! not ok 

我尝试更改 node-gyp 默认 python 版本,如下所示:

并且所有命令都导致相同的错误。他们使用 python3 而不是传递给配置的 python。

环境详细信息

我通过导出 NODE_GYP_FORCE_PYTHON 解决了这个问题,如下所示:

export  NODE_GYP_FORCE_PYTHON=/home/rando/.pyenv/versions/2.7.18/bin/python
echo $NODE_GYP_FORCE_PYTHON

我试过 ,但没用。我通过导出具有相同值的 PYTHON env var 解决了这个问题:

export PYTHON=$HOME/.pyenv/versions/2.7.18/bin/python

设置 NODE_GYP_FORCE_PYTHON 后,我收到 python 版本已过时的错误。要求 python 版本 >=3.6 .

使用 python3 时,它给出了语法错误,因为它试图执行用 python2 编写的内容。所以对我有用的是

yarn remove node-sass
yarn add node-sass
yarn install && yarn start