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" ?
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 ;-))
définissez python sur python2.7 avant d'exécuter npm install
Linux:
export PYTHON=python2.7
Les fenêtres:
set PYTHON=python2.7
Pour les utilisateurs Windows, quelque chose comme ceci devrait fonctionner:
PS C:\angular> npm install --python=C:\Python27\python.exe
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.
pour une utilisation rapide, cela fonctionne, npm install --python = "c:\python27"