NPM kurulumu sırasında farklı bir python sürümü nasıl kullanılır?


218

Centos 5.9 ve varsayılan python 2.4.3 çalıştıran bir VPS'ye terminal erişimim var. Ayrıca bu komutlar aracılığıyla python 2.7.3'ü yükledim: (Bunun make altinstallyerine kullandım 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

daha sonra node.js dosyasını bu komutlar aracılığıyla kaynaktan yükledim:

python2.7 ./configure
make
make install

Sorun, ben kullanmak npm installve python> 2.4.3 gerektiren bir node.js paketi yüklemeye çalıştığınızda bu hatayı alıyorum:

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

nasıl olmalıdır "Python> = v2.5.0 işaret edecek --python geçiş geçmek" ?


Bir kesmek öneriyorum. Bu python sürümünü kabuğunuzda yumuşatmaya ve kabuğu kapattıktan sonra, sistem önceki durumuna
dönmelidir

@rafee harika, bunu nasıl yapabilirim açıklayabilir misin? Centos için biraz yeniyim!
Nasser Torabzade

Neredeyse hiç CentOS kullanmadım. Diğer linux dağıtımları gibi olmalı. Geçici prosedürden bahsediyorum, çünkü takma adı kalıcı hale getirmek sisteminize zarar verebilir. Yani bu yapılmamalı.
rafee

@rafee teşekkürler, çözümünüzü kontrol edeceğim.
Nasser Torabzade

2
takma ad python = / path / to / python yeterince iyi olmalıdır. Ancak değişikliği geçici olarak yapma konusunda dikkatli olun, kalıcı değişiklik sisteminize zarar verebilir
rafee

Yanıtlar:


500

--pythonNpm için aşağıdaki gibi bir seçenek kullanabilirsiniz :

npm install --python=python2.7

veya her zaman kullanılacak şekilde ayarlayın:

npm config set python python2.7

Npm de bu seçeneği gerektiğinde düğüm-devire geçirecektir.

(not: Github'da bunun dokümanlarda yer almasını sağlamak için bir sorun açan kişiyim, çünkü bu konuda birçok soru vardı ;-))


35
Bu kabul edilen cevap olmalı. npm config set python python2.7olduğunu kesin çözüm
Alessandro Pezzato

Herhangi bir Python 2 sürümü kabul edilebilirse, biri kullanılabilir npm install --python=python2mi?
Freedom_Ben

1
Tabii, eğer python2$ PATH üzerindeyse , elbette kullanın :-)
ack

5
İçin pyenvPython 3 ile ben kullandımnpm install --python=/usr/bin/python
Andrei

11
ben küresel olarak python3 var, ben de kullanarak python27 kurulum gerekir:> bu npm config set python C: \ Python27 \ python.exe
francois

54

npm yüklemesini çalıştırmadan önce python'u python2.7 olarak ayarlayın

Linux:

export PYTHON=python2.7

Pencereler:

set PYTHON=python2.7

4
exportbir ortam değişkeni ayarlamak için kullanılır ve değişken kabuk ve onun alt işlem üzerinde çalışır ..
Sandtears Kirisame

benim mi bu mu? çünkü eğer benim çalışsaydım, o zaman cevap olarak gönderirim ve bu cevap olarak işaretlenmelidir
rafee

@ rafee bu çalıştı, gelecekteki ihtiyaçları için öneri kaydetti, teşekkürler.
Nasser Torabzade

7
set PYTHON=python2.7Windows'ta kullanım
zacharyliu

1
Yüklü belirli bir python3 ortamı olması gerektiğinde bu kötü bir fikirdir. python2.7 sadece bu durumda npm için kullanılır, bu yüzden ne yaptığınızı bilmeden tüm kabuk ortamınız için değil, sadece npm için ayarlayın.
ohcibi

34

Windows kullanıcıları için böyle bir şey çalışmalıdır:

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

7
Bu, aşağıdakileri kullanarak kabul edilen cevapla birleştirilebilir: npm config set python C:\Python27\python.exe- Sadece yaptım ve iyi çalıştı, yani her şey yüklemek istediğinizde bunu yapmak zorunda değilsiniz.
Nathan Ridley

7

Tamam, zaten bir çözüm buldun. Benim için faydalı olan şeyleri pek çok kez paylaşmak istedim;

setpy2Python değiştirmeme yardımcı olan takma ad oluşturdum .

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

Çalıştırmadan setpy2önce yürütün npm install. Anahtar siz terminalden çıkana kadar etkin kalır, daha sonra pythonsistem varsayılanına geri döner.

Bu tekniği başka herhangi bir komut / araç için de kullanabilirsiniz.


@ NasırTorabzade takma ad, işi veya çözümü çözüm olarak gerçekleştirdi mi?
rafee

@rafee Sadece gelecekteki ihtiyaçlar için sakladı, test etmeye gelmedi! afedersiniz!
Nasser Torabzade

@NasserTorabzade aslında sordum PYTHON = python2.7 yeterince iyiydi, çünkü bu önerdiğimden çok basit bir çözüm.
rafee

@rafee evet, PYTHON = python2.7 bir cazibe gibi çalıştı! :)
Nasser Torabzade

1

hızlı bir kez bu çalışma kullanın, npm install --python = "c: \ python27"


0

Yolda python yoksa veya dizini belirtmek istiyorsanız , bu daha iyi çalışır :

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

//for Linux
npm config set python /usr/bin/python27
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.