web-dev-qa-db-fra.com

Comment utiliser une version différente de python lors de l'installation de NPM?

J'ai un accès terminal à un VPS exécutant centos 5.9 et au python 2.4.3 installé par défaut. J'ai aussi installé python 2.7.3 via ces commandes: (J'ai utilisé make altinstall au lieu de 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

puis j'ai installé node.js à partir des sources via ces commandes:

python2.7 ./configure
make
make install

Le problème est que, lorsque j'utilise npm install et que j'essaie d'installer un package node.js nécessitant python> 2.4.3, l'erreur suivante apparaît:

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

comment dois-je "passer le commutateur --python pour qu'il pointe vers Python> = v2.5.0" ?

193
Nasser Torabzade

Vous pouvez utiliser l'option --python pour npm comme ceci:

npm install --python=python2.7

ou configurez-le pour qu'il soit toujours utilisé:

npm config set python python2.7

Npm passera à son tour cette option à node-gyp si nécessaire.

(note: c'est moi qui ai ouvert un numéro sur Github pour l'inclure dans la documentation, car il y avait tellement de questions à ce sujet ;-))

448
ack

définissez python sur python2.7 avant d'exécuter npm install

Linux:

export PYTHON=python2.7

Les fenêtres:

set PYTHON=python2.7
51
Sandtears Kirisame

Pour les utilisateurs Windows, quelque chose comme ceci devrait fonctionner:

PS C:\angular> npm install --python=C:\Python27\python.exe
31
Dave L.

Ok, alors vous avez déjà trouvé une solution. Je voulais juste partager ce qui m’a été utile tant de fois;

J'ai créé l'alias setpy2 qui m'aide à changer de python.

alias setpy2="mkdir -p /tmp/bin; ln -s `which python2.7` /tmp/bin/python; export PATH=/tmp/bin:$PATH"

Exécutez setpy2 avant d'exécuter npm install. Le commutateur reste en vigueur jusqu'à ce que vous quittiez le terminal, puis python est remis aux valeurs par défaut du système.

Vous pouvez également utiliser cette technique pour toute autre commande/outil.

7
vmx

pour une utilisation rapide, cela fonctionne, npm install --python = "c:\python27"

0
MPV