NPM 설치 중에 다른 버전의 파이썬을 사용하는 방법은 무엇입니까?


218

centos 5.9 및 기본 Python 2.4.3을 실행하는 VPS에 대한 터미널 액세스 권한이 있습니다. 나는 또한이 명령을 통해 파이썬 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

"파이썬> = v2.5.0을 가리 키도록 --python 스위치를 어떻게 통과시켜야 합니까? "


나는 핵을 제안 할 것이다. 쉘 내부 에서이 파이썬 버전의 앨리어싱은 어떻습니까? 그리고 쉘을 닫은 후 시스템은 이전 상태로 돌아갑니다
rafee

@ rafee 훌륭합니다. 어떻게 할 수 있는지 설명해 주시겠습니까? 나는 centos에 조금 익숙하다!
Nasser Torabzade

나는 CentOS를 거의 사용하지 않았다. 다른 리눅스 배포판과 같아야합니다. 별칭을 영구적으로 만들면 시스템이 손상 될 수 있으므로 임시 절차에 대해 말씀 드리고 있습니다. 그래서 그렇게해서는 안됩니다.
rafee

@ rafee 감사합니다. 솔루션을 확인하겠습니다.
Nasser Torabzade

2
alias python = / path / to / python이면 충분합니다. 그러나 시스템에 피해를 줄 수의 변화가 일시적, 영구적 인 변화를 만드는 방법에 대한주의
rafee을

답변:


500

다음 --python과 같이 옵션을 npm에 사용할 수 있습니다 .

npm install --python=python2.7

또는 항상 사용되도록 설정하십시오.

npm config set python python2.7

Npm은 필요할 때이 옵션을 node-gyp에 전달합니다.

(참고 : 나는 그것에 대해 많은 질문이 있었기 때문에 Github에서 문서에 포함시키기 위해 Github에서 문제를 연 사람입니다. ;-))


35
이것이 정답입니다. npm config set python python2.7는 IS 확실한 해결책은
알레산드로 Pezzato

Python 2 버전이 허용되는 경우 사용할 수 npm install --python=python2있습니까?
Freedom_Ben

1
물론, python2$ PATH에 있다면 , 반드시 그것을 사용하십시오 :-)
ack

5
pyenvPython 3에서는 다음 을 사용했습니다.npm install --python=/usr/bin/python
Andrei

11
전 세계적으로 python3을 가지고, 나는 또한 python27 사용 설정해야합니다>이 NPM의 설정 세트 파이썬 C를 : \ Python27 \ python.exe를이
프랑소와

54

npm install을 실행하기 전에 python을 python2.7로 설정하십시오.

리눅스 :

export PYTHON=python2.7

윈도우 :

set PYTHON=python2.7

4
export환경 변수를 설정하는 데 사용되며 변수는 쉘과 해당 자식 프로세스에서 작동합니다.
Sandtears Kirisame

내 하나 또는이 하나? 내 것이 효과가 있다면, 그 답변으로 게시하고 답변으로 표시해야합니다
rafee

@rafee 이것이 효과가 있었으므로 앞으로의 요구에 대한 제안을 저장했습니다. 감사합니다.
Nasser Torabzade

7
set PYTHON=python2.7Windows에서 사용
zacharyliu

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

좋아, 이미 해결책을 찾았습니다. 나에게 여러 번 도움이 된 것을 나누고 싶었습니다.

setpy2파이썬을 전환하는 데 도움이되는 별칭을 만들었습니다 .

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

@NasserTorabzade 실제로 PYTHON = python2.7이 충분하다고 물었습니다. 왜냐하면 그것이 제안한 것보다 죽은 간단한 해결책이기 때문입니다.
rafee

@rafee 예, PYTHON = python2.7은 매력처럼 작동했습니다! :)
Nasser Torabzade

1

빠른 한 번 사용하려면이 작업을 수행하십시오. npm install --python = "c : \ python27"


0

경로에 파이썬이 없거나 디렉토리지정 하려는 경우이 방법이 더 좋습니다 .

//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.