Как использовать другую версию python во время установки NPM?

У меня есть терминальный доступ к VPS running centos 5.9 и установленному по умолчанию python 2.4.3. Я также установил python 2.7.3 с помощью следующих команд: (я использовал make altinstall вместо 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

то я установил node.js из источника через эти команды:

python2.7 ./configure
make
make install

Проблема заключается в том, что я использую npm install и пытаюсь установить пакет node.js, который требует python > 2.4.3. Я получаю эту ошибку:

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

как мне передать "-python-переключатель" на Python >= v2.5.0??

Ответ 1

Вы можете использовать опцию --python для npm следующим образом:

npm install --python=python2.7

или установите его для использования всегда:

npm config set python python2.7

Npm в свою очередь передает эту опцию node -gyp, когда это необходимо.

(примечание: я тот, кто открыл проблему в Github, чтобы включить это в документы, так как в нем было так много вопросов;-))

Ответ 2

установить python на python2.7 перед запуском npm install

Linux:

export PYTHON=python2.7

Окна:

set PYTHON=python2.7

Ответ 3

Для пользователей Windows что-то вроде этого должно работать:

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

Ответ 4

Итак, вы нашли решение уже. Просто хотел поделиться тем, что было полезно для меня столько раз;

Я создал псевдоним setpy2, который помогает мне переключать python.

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

Выполните setpy2 перед запуском npm install. Переключатель остается в силе до тех пор, пока вы не выйдете из терминала, после чего python вернется к системному стандарту.

Вы можете использовать эту технику для любой другой команды/инструмента.

Ответ 5

для быстрого использования в одно время это работает, npm install --python = "c:\python27"