NPMのインストール中に別のバージョンのPythonを使用するにはどうすればよいですか?


218

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 installpython> 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を指すようにするにはどうすればよいですか?


ハックを提案します。シェル内でこのpythonバージョンのエイリアスを作成し、シェルを閉じた後、システムは以前の状態に戻る必要があります
rafee

@rafeeそれは素晴らしいです、どうすればそれを行うことができますか説明できますか?私はcentosに少し新しいです!
Nasser Torabzade、2013

CentOSはほとんど使用していません。他のLinuxディストリビューションと同じようにする必要があります。エイリアスを永続化するとシステムが損傷する可能性があるため、一時的な手順について説明します。だからそれはすべきではない。
rafee

@rafeeありがとう、解決策を確認します。
Nasser Torabzade 2013

2
エイリアスpython = / path / to / pythonで十分です。ただし、変更を一時的かつ永続的な変更にすると、システムに害が
及ぶ

回答:


499

次の--pythonようにnpmのオプションを使用できます。

npm install --python=python2.7

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

npm config set python python2.7

Npmは、必要に応じて、このオプションをnode-gypに渡します。

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


35
これは受け入れられる答えになるはずです。npm config set python python2.7ある決定的な解決策は
アレッサンドロペッツァート

Python 2のバージョンが許容できる場合、使用できますnpm install --python=python2か?
Freedom_Ben 2014

1
場合は確かに、python2あなたの$ PATH上にある、すべての手段:-)で、それを使用
ACK

5
以下のためpyenvのPython 3で、私が使ってきたnpm install --python=/usr/bin/python
アンドレイ

11
私はグローバルとしてのpython3を持っているように、私は使用してpython27もセットアップする必要があります:> CのpythonこのNPM設定セット:\ Python27 \ python.exeは
フランソワ

54

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

Linux:

export PYTHON=python2.7

ウィンドウズ:

set PYTHON=python2.7

4
export...環境変数を設定するために使用され、シェルとその子プロセスの変数作品れる
Sandtears魔理沙

私かこれ?私の1つが機能した場合、私はそれを回答として投稿し、回答としてマークする必要があるためです
rafee

@rafeeこれはうまくいきました、将来のニーズのためにあなたの提案を保存しました、ありがとう。
Nasser Torabzade 2013

7
set PYTHON=python2.7Windowsでの使用
zacharyliu 2014

1
これは、特定のpython3環境がロードされていることが必要な場合は、悪い考えです。この場合、python2.7はnpmにのみ使用されるため、何をしているのかを知らずにシェル環境全体ではなく、npmにのみ設定します。
ohcibi

34

Windowsユーザーの場合、次のようなものが機能するはずです。

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

7
これは、次を使用して受け入れられた回答と組み合わせることができます。- npm config set python C:\Python27\python.exe私はこれを実行しただけで問題なく動作しました。
Nathan Ridley、

7

さて、あなたはすでに解決策を見つけました。何度も私に役立つものを共有したかっただけです。

setpy2Pythonの切り替えに役立つエイリアスを作成しました。

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

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

このテクニックは、他のコマンド/ツールにも使用できます。


@NasserTorabzadeエイリアシングは答えの仕事またはソリューションを実行しましたか?
rafee

@rafee将来のニーズのために保存しただけで、実際にテストするために来たのではありません!ごめんなさい!
Nasser Torabzade 2013

私が実際に尋ねた@NasserTorabzadeはPYTHON = python2.7で十分だと思った。
rafee

@rafeeはい、PYTHON = python2.7は魅力のように機能しました!:)
Nasser Torabzade 2013

1

一度だけすばやく使用するには、これでうまくいきます。npminstall --python = "c:\ python27"


0

パスにpythonがない場合、またはディレクトリ指定したい場合、これはよりうまく機能します

//for Windows
npm config set python C:\Python27\python.exe

//for Linux
npm config set python /usr/bin/python27
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.