pythonnode.jscentosnpm

How can I use a different version of python during NPM install?


I have terminal access to a VPS running CentOS 5.9 and default Python 2.4.3 installed. I also installed Python 2.7.3 via these commands (I used make altinstall instead of make install):

wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar -xf Python-2.7.3.tgz
cd Python-2.7.3
./configure
make
make altinstall

Then I installed Node.js from source code via these commands:

python2.7 ./configure
make
make install

The problem is, when I use npm install and try to install a Node.js package which requires Python 2.4.3 (or later), I get this error:

gyp ERR! configure error
gyp ERR! stack Error: Python executable "python" is v2.4.3, which is not supported by gyp.
gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0.
gyp ERR! stack     at failPythonVersion (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:125:14)
gyp ERR! stack     at /usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:114:9

How should I "pass the --python switch to point to Python >= v2.5.0"?


Solution

  • You can use the --python option to npm like so:

    npm install --python=python2.7
    

    Or set it to be used always:

    npm config set python python2.7
    

    Npm will in turn pass this option to node-gyp when needed.