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

Ran*_*shi 8 python node.js 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 

Run Code Online (Sandbox Code Playgroud)

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

  • 命令 : node-gyp rebuild --python=/home/rando/.pyenv/versions/2.7.18/bin
  • 命令 : node-gyp rebuild --python=2.7
  • 命令 :node-gyp rebuild --python=2.7.18

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

环境详情

  • 操作系统:Ubuntu 20.04
  • Python版本:2.7.18
  • 节点版本:V9.6.1

Ran*_*shi 5

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

export  NODE_GYP_FORCE_PYTHON=$HOME/.pyenv/versions/2.7.18/bin/python
echo $NODE_GYP_FORCE_PYTHON
Run Code Online (Sandbox Code Playgroud)