मैं हिम तेंदुए पर डिफ़ॉल्ट पायथन संस्करण को कैसे बदल सकता हूं?


27

मैंने हाल ही में अपने मैक ओएस एक्स 10.5 तेंदुए को 10.6 स्नो लेपर्ड में स्थापित किया, और इसके साथ ही पाइथन का उन्नत संस्करण 2.6.1 आया (इसके बजाय यदि 2.5.1)। अब जब मैं pythonटर्मिनल में टाइप करता हूं तब भी मुझे मिलता है

Python 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) 
[GCC 4.0.1 (Apple Computer, Inc. build 5367)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

मैंने देखा /usr/bin/और पाया कि पायथन 2.6 पाने के लिए मुझे टाइप करना होगा python2.6

सवाल यह है कि मैं pythonपायथन 2.6 को कमांड मैप कैसे बनाऊं?

जवाबों:


21

यह आसान है:

defaults write com.apple.versioner.python Version 2.6

man pythonApple से संपूर्ण स्पष्टीकरण के लिए देखें ।

इसके अलावा, एक गेटा: सुनिश्चित करें कि आप अपने कंप्यूटर के साथ आए पायथन को चला रहे हैं, न कि आपके द्वारा इंस्टॉल किए गए कुछ अन्य। which pythonअपने कमांड प्रॉम्प्ट पर टाइप करके ऐसा करें । यह इंगित करना चाहिए /usr/bin/python। मैं केवल इसका उल्लेख करता हूं क्योंकि मेरा डिफ़ॉल्ट स्नो लेपर्ड के तहत 2.6 है (यह 2.5 था जब मैं तेंदुए का उपयोग कर रहा था)। तो यह तथ्य कि आपको 2.5 मिल रहे हैं, यह संकेत दे सकता है कि आपके रास्ते में कुछ और है।

अद्यतन करें

नीचे टिप्पणियों को संबोधित करने के लिए:

यह वह नहीं करता जो लोग पूछ रहे हैं।

यह मेरे लिए, OS X 10.8.2 में है। करने के बाद defaults write com.apple.versioner.python Version 2.6, पायथन का डिफ़ॉल्ट संस्करण वास्तव में 2.6 है। (और इसी तरह 2.7 को वापस बदलने के बाद।)

यह सच है कि क्या मैं pythonसीधे भागता हूं , या एक निष्पादन योग्य स्क्रिप्ट का उपयोग करता हूं #!/usr/bin/env python- जिसका मैं पायथन के अपेक्षित संस्करण को प्राप्त करता हूं ।

यह सिम्लिंक को /System/Library/Frameworks/Python.framework/Versions में हल नहीं करता है, जहां वर्तमान बिंदु 2.7 है, जो समस्याओं का कारण बन सकता है (क्योंकि यह अभी भी 2.6 के साथ sys.path में है!)

वास्तव में, यह उस सिम्लिंक को ठीक नहीं करता है।

हालांकि, एक छोटी स्क्रिप्ट चलाने print()है sys.pathऔर (मेरे अपेक्षाकृत डिफ़ॉल्ट सेटअप पर कम से कम) 2.6 पुस्तकालय निर्देशिका हैं पथ पर और 2.7 dirs हैं नहीं रास्ते पर। न ही Currentपथ पर सहानुभूति निर्देशिका है। तो यह ज्यादातर लिपियों के लिए एक समस्या नहीं होनी चाहिए।

हालाँकि, यह संभव है — परीक्षण नहीं किया गया है - कि Currentसिमिलिंक का उपयोग easy_installया तो किया जाता है pip। जिसके कारण समस्या होगी। यह निश्चित है कि यह बग की तरह प्रतीत होता है कि जब आप पायथन संस्करण को अपडेट करते हैं तो सिमलिंक अपडेट नहीं किया जाता है।


3
तुम सही थे। मैंने बहुत समय पहले MacPython स्थापित किया था और इसने मेरे PATH चर को खराब कर दिया pythonथा /Library/Frameworks/Python.framework/Versions/Current/bin। स्वाभाविक रूप से जो 2.6 में अपग्रेड नहीं हुआ। इसलिए मैंने अपने PATH वैरिएबल को Google पर पाए गए डिफ़ॉल्ट के साथ बदल दिया, और अब अपने सिस्टम से MacPython को हटा दूंगा।
SBSTN

@SBSTN मुझे एक ही समस्या मिली है (अजगर पथ की ओर इशारा करते हुए /Library/Frameworks/Python.framework/Versions/Current/bin) मैं इसे कैसे बदलूं?
ज़ैक

Xcode4 के साथ काम नहीं करता है क्योंकि अब कोई भी लाइब्रेरी / फ्रेमवर्क / पायथन * नहीं है और न ही कहीं और / usr / bin / python पॉइंट है। कोई विचार? MacPorts एक समाधान होगा, लेकिन मैं इसे स्थापित नहीं करना चाहता।
एलेक्स

मैंने Xcode 4 स्थापित किया है और यह अभी भी वर्णित के रूप में काम करता है। /usr/bin/pythonएक निष्पादन योग्य है, लिंक नहीं है। /usr/bin/python2.6एक लिंक है जो इंगित करता है ../../System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6। यह देखते हुए कि पायथन निष्पादन योग्य है, /System/Libraryइसमें उपलब्ध होना चाहिए, भले ही Xcode का कौन सा संस्करण स्थापित हो।
नैट

यह वह नहीं करता जो लोग पूछ रहे हैं। यकीन नहीं होता कि इसका जवाब क्यों है।
010110110101

12

मैं मैक बंदरगाहों का उपयोग करने का सुझाव दूंगा ...

एक पैकेज है जिसे python_select कहा जाता है जो समानांतर में अजगर का उपयोग करने की अनुमति देता है। तो पहले मैक पोर्ट स्थापित करें यदि पहले से इंस्टॉल नहीं है।

पहले python_select पैकेज स्थापित करें:

sudo port install python_select

पहले से ही अब आप जांच सकते हैं कि आपके सिस्टम पर कौन से अजगर वितरण उपलब्ध हैं। बस आदेश जारी करें:

port select --list python     (MacPorts 2.x)
python_select -l              (MacPorts 1.x)

मेरे मामले में यह कम से कम अजगर संस्करण मुद्रित करता है जो स्नो लेपर्ड के साथ डिफ़ॉल्ट रूप से आता है python26-apple:।

port select --show python     (MacPorts 2.x)
python_select -s              (MacPorts 1.x)

वर्तमान में चयनित संस्करण दिखाता है, उदाहरण के लिए python26-apple। तो आप देखते हैं, यह पैकेज अच्छी तरह से मैक के साथ खेलता है। अधिक विकल्प जारी करने के लिए

port select                   (MacPorts 2.x)
python_select -h              (MacPorts 1.x)

पोर्ट रिपॉजिटरी में उपलब्ध अजगर संस्करण की खोज कर सकते हैं:

port search python

यह एक लंबी सूची उपलब्ध पायथन का उत्पादन करेगा।

वांछित संकुल को स्थापित करने के लिए, उदाहरण के लिए अजगर 2.4 निष्पादित करें:

sudo port install python24

अब python_select -sताजा स्थापित अजगर को भी दिखाएगा। अजगर 2.4 मुद्दे पर स्विच करने के लिए:

sudo port select --set python python24  (MacPorts 2.x)
sudo python_select python24             (MacPorts 1.x)

यह कमांड गोले के बीच लगातार बनी रहती है।


5

मान लें कि आप बैश का उपयोग कर रहे हैं, टाइप करें:

% type -a python

कि आप सभी "अजगर" निष्पादन योग्य, उपनाम, शेल बिल्डरों (संभावित रूप से कोई नहीं) या आपके बैट में कार्य को दिखाएगा।

इससे आपको यह पता लगाने में मदद मिलेगी कि यहाँ क्या हो रहा है।


3

आप इच्छित संस्करण के लिए एक सिमलिंक बनाना चाहते हैं।

cd /Library/Frameworks/Python.framework/Versions 
sudo rm Current 
sudo ln -s /Library/Frameworks/Python.framework/Versions/2.6 Current

यह आपके डिफ़ॉल्ट पायथन संस्करण के लिए वर्तमान सूचक को निकालता है और इसे आपके 2.6 संस्करण में सेट करता है।


1
यह मैंने जैसा किया वैसा ही है। लेकिन इसके बजाय मैंने / usr / bin में लिंक डाला और इसे "अजगर" (पुराने "अजगर" को लागू करने योग्य बताया जो कि Apple ने वहां रखा)। तो: sudo ln -s /path/to/2.7 /usr/bin/python। यह लिनक्स में किया जाने वाला तरीका है और यह सिर्फ समझ में आता है।
रात

0

आदर्श (IMO) नहीं है, लेकिन इसने pythonमेरे लिए देख रहे सभी ऐप्स को ठीक कर दिया है /usr/local/bin/

sudo cp /usr/local/bin/python3 /usr/local/bin/python

बेशक, नवीनतम पायथन संस्करण को स्थापित करने के बाद।


यह वास्तव में बुरा विचार है। सीलिंक का उपयोग करना समझा जा सकता है, लेकिन आगे और पीछे बायनेरिज़ की नकल करना एक अच्छा विचार नहीं है।
जकूजी

समझ में आया, मैं बस टर्मिनल में अजगर टाइप करना चाहता हूँ और यह Python3.x को इंगित करता है ... इसे ठीक से ठीक करने में देर नहीं हुई।
एजीडीएम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.