web-dev-qa-db-ja.com

NPMのインストール中に別のバージョンのpythonを使用する方法

私はcentos 5.9を実行しているデフォルトのpython 2.4.3がインストールされているVPSへの端末アクセスがあります。私はこれらのコマンドで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を使用してpython> 2.4.3を必要とするnode.jsパッケージをインストールしようとすると、このエラーが発生することです。

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を指すようにします"

202

Npmには--pythonオプションを使うことができます。

npm install --python=python2.7

または常に使用されるように設定します。

npm config set python python2.7

Npmは必要ならばこのオプションをnode-gypに渡します。

(注:私がGithubで問題を開いたのは私がこれをドキュメントに含めるためです。多くの質問がありましたので;-))

465
ack

npm installを実行する前にpythonをpython2.7に設定します。

Linux:

export PYTHON=python2.7

Windows:

set PYTHON=python2.7
52

Windowsユーザーにとっては、このようなものでうまくいくはずです。

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

わかりました、それであなたはすでに解決策を見つけました。何度も私にとって役に立つものを共有したいと思っただけです。

私はpythonを切り替えるのに役立つsetpy2エイリアスを作成しました。

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

setpy2を実行する前にnpm installを実行してください。端末を終了するまでスイッチは有効のままで、その後pythonはシステムデフォルトに戻ります。

他のコマンドやツールにもこのテクニックを利用することができます。

7
vmx

すぐにこの機能を使うには、npm install --python = "c:\ python27"を使ってください。

1
MPV