एनपीएम स्थापित करने के दौरान अजगर के एक अलग संस्करण का उपयोग कैसे करें?


218

मेरे पास वीपीएस चल रहे सेंटोस 5.9 और डिफ़ॉल्ट पायथन 2.4.3 में टर्मिनल एक्सेस है। मैंने इन आदेशों के माध्यम से अजगर 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

तब मैंने इन कमांड्स के माध्यम से नोड.जेएस को स्रोत से स्थापित किया:

python2.7 ./configure
make
make install

समस्या यह है कि जब मैं उपयोग करता हूं npm installऔर नोड.जेएस पैकेज को स्थापित करने का प्रयास करता हूं जिसमें अजगर की आवश्यकता होती है> 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

मैं पायथन> = v2.5.0 को इंगित करने के लिए "- theththon स्विच" कैसे पास करूं ?


मैं एक हैक का प्रस्ताव होगा। कैसे अपने खोल के अंदर इस अजगर संस्करण aliasing के बारे में और फिर आप खोल को बंद करने के बाद, सिस्टम पिछले राज्य में वापस आ जाना चाहिए
rafee

@ यह बहुत अच्छा है, क्या आप बता सकते हैं कि मैं कैसे कर सकता हूँ? मैं सेंटो के लिए थोड़ा नया हूँ!
नासिर तोराबज़ादे

मैंने लगभग कभी CentOS का उपयोग नहीं किया। यह किसी भी अन्य लिनक्स वितरण की तरह होना चाहिए। मैं अस्थायी प्रक्रिया के बारे में बता रहा हूं, क्योंकि उपनाम को स्थायी बनाने से आपके सिस्टम को नुकसान हो सकता है। इसलिए ऐसा नहीं किया जाना चाहिए।
रफ़ी

@ धन्यवाद धन्यवाद, मैं आपके समाधान की जाँच करूँगा।
नासर तोरबज़ादे

2
उर्फ अजगर = / पथ / से / अजगर काफी अच्छा होना चाहिए। लेकिन परिवर्तन को अस्थायी बनाने के बारे में सावधान रहें, स्थायी परिवर्तन आपके सिस्टम को नुकसान पहुंचा सकता है
rafee

जवाबों:


500

आप इस --pythonतरह npm के लिए विकल्प का उपयोग कर सकते हैं :

npm install --python=python2.7

या इसे हमेशा इस्तेमाल किए जाने के लिए सेट करें:

npm config set python python2.7

Npm जरूरत पड़ने पर नोड-जिप के लिए यह विकल्प देगा।

(ध्यान दें: मैं वही हूं जिसने गितुब पर एक मुद्दा खोला है ताकि यह डॉक्स में शामिल हो, क्योंकि इसके बारे में बहुत सारे प्रश्न थे;;)


35
यह स्वीकृत उत्तर होना चाहिए। npm config set python python2.7है निश्चित समाधान
Alessandro Pezzato

यदि कोई पायथन 2 संस्करण स्वीकार्य है, तो क्या कोई उपयोग कर सकता है npm install --python=python2?
फ्रीडम_बनेह

1
बेशक, अगर python2आपके $ पथ पर है, का उपयोग करने वाले हर तरह :-) द्वारा,
पावती

5
के लिए pyenvअजगर 3 के साथ, मैं का उपयोग किया हैnpm install --python=/usr/bin/python
आंद्रेई

11
जैसा कि मेरे पास python3 है जैसा कि वैश्विक है, मुझे भी python27 सेटअप करने की आवश्यकता है:> इस npm कॉन्फिग सेट python C: \ Python27 \ python.exe
francois

54

npm स्थापित चलाने से पहले अजगर को python2.7 पर सेट करें

लिनक्स:

export PYTHON=python2.7

खिड़कियाँ:

set PYTHON=python2.7

4
exportएक पर्यावरण चर सेट करने के लिए प्रयोग किया जाता है, और चर आपके शेल और उसके बच्चे की प्रक्रिया पर काम करता है ..
Sandtears Kirisame

मेरा एक या यह एक? क्योंकि अगर मेरा कोई काम करता है, तो मैं उसे उत्तर के रूप में पोस्ट करूंगा और उसे उत्तर के रूप में चिह्नित किया जाना चाहिए
rafee

@ इस पर काम किया, मैंने भविष्य की जरूरतों के लिए आपके सुझाव को बचाया, धन्यवाद।
नासर तोरबज़ादे

7
set PYTHON=python2.7विंडोज पर उपयोग
zacharyliu

1
यह एक बुरा विचार है जब इसकी आवश्यकता होती है कि एक निश्चित पायथन 3 वातावरण भरा हुआ है। python2.7 केवल इस स्थिति में npm के लिए उपयोग किया जाता है, इसलिए इसे केवल npm के लिए सेट करें और आपके संपूर्ण शेल वातावरण के लिए यह जाने बिना कि आप क्या कर रहे हैं।
ओहसीबी

34

विंडोज उपयोगकर्ताओं के लिए कुछ इस तरह से काम करना चाहिए:

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

7
इसका उपयोग करके स्वीकृत उत्तर के साथ जोड़ा जा सकता है: npm config set python C:\Python27\python.exe- मैंने अभी यह किया है और इसने ठीक काम किया है, जिसका अर्थ है कि हर बार जब आप कुछ स्थापित करना चाहते हैं तो ऐसा नहीं करना चाहिए।
नाथन रिडले 23

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 बस इसे भविष्य की जरूरतों के लिए बचाया, वास्तव में यह परीक्षण करने के लिए नहीं आया था! माफ़ करना!
नासर तोरबज़ादे

@NasserTorabzade मैंने वास्तव में पूछा था कि PYTHON = python2.7 काफी अच्छा था, क्योंकि मैंने जो प्रस्तावित किया था, वह एक मृत सरल समाधान है।
रफ़ी

@rafee हाँ, PYTHON = python2.7 ने एक आकर्षण की तरह काम किया! :)
नासर तोरबज़ादे

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.