डिफ़ॉल्ट पायथन संस्करण कैसे बदलें?


106

मैंने अपने मैक में अजगर 3.2 स्थापित किया है। जब मैं / एप्लिकेशन / पायथन 3.2 / अपडेट शेल प्रोफाईल डॉट कॉम चलाता / चलाती हूं , तो यह भ्रम होता है कि जब मैं टर्मिनल में python -V टाइप करती हूं तो यह कहता है कि Python 2.6.1 , मैं डिफ़ॉल्ट पायथन संस्करण को कैसे बदल सकता हूं?



का उपयोग कर एक अच्छा समाधान के लिए Openource.com/article/19/5/python-3-default-mac देखें pyenv
थॉमस अहले

जवाबों:


115

यह शायद पीछे की संगतता के लिए वांछनीय है।

पायथन 3 पीछे की संगतता को तोड़ता है, और 'अजगर' को लागू करने वाले कार्यक्रम शायद अजगर 2 की उम्मीद करते हैं। आपके पास शायद ऐसे कई कार्यक्रम और स्क्रिप्ट हैं, जिनके बारे में आप जानते भी नहीं हैं, जो कि python = python2 की अपेक्षा करते हैं, और इसे बदलने से उन कार्यक्रमों और स्क्रिप्ट को तोड़ दिया जाएगा।

आप जिस उत्तर की तलाश कर रहे हैं, वह यह है कि आपको इसे बदलना नहीं चाहिए

हालाँकि, आप अपने शेल में एक कस्टम उपनाम बना सकते हैं। आपके ऐसा करने का तरीका शेल पर निर्भर करता है, लेकिन शायद आप ऐसा कर सकते हैंalias py=python3

यदि आप अजगर के नवीनतम संस्करण को शुरू करने के तरीके के बारे में भ्रमित हैं, तो यह कम से कम लिनक्स पर मामला है जो python3आपके python2इंस्टॉलेशन को बरकरार रखता है (उपरोक्त संगतता कारणों के कारण) ; इस प्रकार आप python3 को python3कमांड से शुरू कर सकते हैं ।


36
यह उपयोगी जानकारी है, लेकिन सवाल था "मैं डिफ़ॉल्ट अजगर संस्करण को कैसे बदल सकता हूं।" क्या हम ऐसा करने की कोशिश कर रहे लोगों की मदद के लिए कुछ जोड़ सकते हैं?
dmeyerson

Mac पर Python3 को स्थापित करने के साथ Python2 को भी बरकरार रखता है। लेकिन ऐसा लगता है कि डिफ़ॉल्ट को बदलने का एक तरीका है जो केवल "अजगर" टाइप होने पर चलाया जाता है। मैं एक बार विकल्प भर में आया था। मैंने इसे छोड़ने के लिए चुना है, जहां "पायथन --version" 2.7.12 और "python3 --version" शो 3.7.0 दिखाता है। मैं ऊपर डमीसन से सहमत हूं कि सवाल यह है कि इसे कैसे बदलना है। आपकी सलाह अच्छी है लेकिन इसे बदलने का एक तरीका है अगर आपको (या वास्तव में, वास्तव में चाहते हैं)।
रिच सैडोव्स्की

3
> आप जिस उत्तर की तलाश कर रहे हैं वह यह है कि आपको इसे बदलना नहीं चाहिए। और यहाँ मैंने सोचा कि यह "मैं इसे कैसे बदलूं"!
Duane

2
यह उत्तर सही है। सिस्टम स्तर पर उन बिंदुओं को न बदलें जो pythonआप करते हैं तो आप ओएस के महत्वपूर्ण घटकों को तोड़ सकते हैं । इसके बजाय, अपने आप को "स्थानीय" डिफ़ॉल्ट पायथन देने के लिए एक अलग पायथन 3 इंस्टॉलेशन और वर्चुअलाइन का उपयोग करें।
मार्टिन पीटर्स

50

अजगर 3 का स्थान जांचें

$ which python3
/usr/local/bin/python3

Bash_profile में उपनाम लिखें

vi ~/.bash_profile  
alias python='/usr/local/bin/python3'

पुनः लोड करें bash_profile

source ~/.bash_profile

पाइथन कमांड की पुष्टि करें

$ python --version
Python 3.6.5

2
यह एक बुरा उपाय है। जैसा कि स्वीकृत उत्तर में उल्लेख किया गया है, $ pythonअजगर के लिए आरक्षित है। आपके कंप्यूटर पर चलने वाला कोई भी कार्यक्रम जो अजगर 2 की अपेक्षा करता है, तब उपनाम के कारण अजगर 3 प्राप्त करेगा, जिसके अप्रत्याशित परिणाम हो सकते हैं।
शोनीन

ऐप्पल के इरादे सवाल के लिए अप्रासंगिक हैं।
Duane

45

जाहिरा तौर पर आपके पास python.org इंस्टॉलर का उपयोग करते हुए Mac OS X पर, आपको Python 3 को इनवॉइस करने की आवश्यकता है python3, नहीं python। यह वर्तमान में पायथन 2 संस्करणों के लिए आरक्षित है। आप python3.2विशेष रूप से उस संस्करण को लागू करने के लिए भी उपयोग कर सकते हैं ।

$ which python
/usr/bin/python
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ cd /Library/Frameworks/Python.framework/Versions/3.2/bin/
$ ls -l
total 384
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 2to3@ -> 2to3-3.2
-rwxrwxr-x  1 root  admin    140 Feb 20 11:14 2to3-3.2*
lrwxr-xr-x  1 root  admin      7 Apr 28 15:51 idle3@ -> idle3.2
-rwxrwxr-x  1 root  admin    138 Feb 20 11:14 idle3.2*
lrwxr-xr-x  1 root  admin      8 Apr 28 15:51 pydoc3@ -> pydoc3.2
-rwxrwxr-x  1 root  admin    123 Feb 20 11:14 pydoc3.2*
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3*
lrwxr-xr-x  1 root  admin     12 Apr 28 15:51 python3-32@ -> python3.2-32
lrwxr-xr-x  1 root  admin     16 Apr 28 15:51 python3-config@ -> python3.2-config
-rwxrwxr-x  2 root  admin  25624 Feb 20 11:14 python3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 python3.2-32*
lrwxr-xr-x  1 root  admin     17 Apr 28 15:51 python3.2-config@ -> python3.2m-config
-rwxrwxr-x  1 root  admin  25784 Feb 20 11:14 python3.2m*
-rwxrwxr-x  1 root  admin   1865 Feb 20 11:14 python3.2m-config*
lrwxr-xr-x  1 root  admin     10 Apr 28 15:51 pythonw3@ -> pythonw3.2
lrwxr-xr-x  1 root  admin     13 Apr 28 15:51 pythonw3-32@ -> pythonw3.2-32
-rwxrwxr-x  1 root  admin  25624 Feb 20 11:14 pythonw3.2*
-rwxrwxr-x  1 root  admin  13964 Feb 20 11:14 pythonw3.2-32*

यदि आपने python.org से Python 2 भी स्थापित किया है, तो इसमें समान फ्रेम बिन निर्देशिका होगी जिसमें कोई अतिव्यापी फ़ाइल नाम (2to3 को छोड़कर) नहीं होगा।

$ open /Applications/Python\ 2.7/Update\ Shell\ Profile.command
$ sh -l
$ echo $PATH
/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ which python3
/Library/Frameworks/Python.framework/Versions/3.2/bin/python3
$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
$ cd /Library/Frameworks/Python.framework/Versions/2.7/bin
$ ls -l
total 288
-rwxrwxr-x  1 root  admin    150 Jul  3  2010 2to3*
lrwxr-x---  1 root  admin      7 Nov  8 23:14 idle@ -> idle2.7
-rwxrwxr-x  1 root  admin    138 Jul  3  2010 idle2.7*
lrwxr-x---  1 root  admin      8 Nov  8 23:14 pydoc@ -> pydoc2.7
-rwxrwxr-x  1 root  admin    123 Jul  3  2010 pydoc2.7*
lrwxr-x---  1 root  admin      9 Nov  8 23:14 python@ -> python2.7
lrwxr-x---  1 root  admin     16 Nov  8 23:14 python-config@ -> python2.7-config
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 python2.7*
-rwxrwxr-x  1 root  admin   1663 Jul  3  2010 python2.7-config*
lrwxr-x---  1 root  admin     10 Nov  8 23:14 pythonw@ -> pythonw2.7
-rwxrwxr-x  1 root  admin  33764 Jul  3  2010 pythonw2.7*
lrwxr-x---  1 root  admin     11 Nov  8 23:14 smtpd.py@ -> smtpd2.7.py
-rwxrwxr-x  1 root  admin  18272 Jul  3  2010 smtpd2.7.py*

"वर्तमान में पायथन 2 संस्करणों के लिए आरक्षित" के बारे में, क्या आपके पास इसके लिए एक लिंक है?
वाइल्डकार्ड

अगर मेरे पास python 3.4 और python 3.7 है, जब मैं टर्मिनल से python3 टाइप करता हूं, तो यह python 3.4 को 3.7 नहीं 3.7 निष्पादित करता है, इसे कैसे ठीक करें?
यश

31

पुराना सवाल है, लेकिन वैकल्पिक रूप से:

virtualenv --python=python3.5 .venv
source .venv/bin/activate

यकीन है, लेकिन अगर आपके पास निष्पादन योग्य नहीं है (उदाहरण python3.5) तो यह समाधान काम नहीं करता है।
अफशीन मेहरबानी

मुझे लगता है कि यह stackoverflow.com/questions/5506110/…
FreshPow

19

सही काम करो, बात सही करो!

---> शून्य अपना टर्मिनल खोलें,

- पूरी तरह से इनपुट python -V, यह संभावना दिखाता है:

Python 2.7.10

-सबसे पहले इनपुट python3 -V, यह संभावना से पता चलता है:

Python 3.7.2

- तुरंत इनपुट where pythonया which python, यह संभावना दिखाता है:

/usr/bin/python

--- चौथा इनपुट where python3या which python3, यह संभावना दर्शाता है:

/usr/local/bin/python3

- बश के ~/.profile file or ~/.bash_profileतहत या ~/.zshrczsh के तहत अपने पथ पर्यावरण चर फ़ाइल के नीचे निम्नलिखित पंक्ति को तुरंत जोड़ें ।

alias python='/usr/local/bin/python3'

या

alias python=python3

source ~/.bash_profileबैश के source ~/.zshrcतहत या zsh के तहत -Sixthly इनपुट ।

- टर्मिनल से बाहर निकलें।

--- आठवें अपने टर्मिनल, और इनपुट खोलें python -V, यह संभावना दर्शाता है:

Python 3.7.2

मैंने इसे सफलतापूर्वक आजमाया था।

अन्य, ~/.bash_profileअंडर ज़िश वह नहीं है ~/.bash_profile

इसके बजाय ~/.profile(या ~/.bash_file) के तहत zsh के तहत पाथ पर्यावरण चर ~/.zshrc

तुम लोगों की मदद करो!


16

उदाहरण के लिए, अपने पथ पर सिस्टम पायथन से आगे रखकर "डिफ़ॉल्ट" पायथन को बदलें।

export PATH=/usr/local/bin:$PATH

मेरी धारणा यह है कि ऐसा करने से आप मैक पर कुछ तोड़ सकते हैं। चूंकि कई कार्यक्रम और स्क्रिप्ट हैं जो "अजगर" उपनाम का उपयोग करते हैं। यदि अचानक, PATH में प्राथमिकता परिवर्तन के कारण, वे Python3 की ओर इंगित करना शुरू करते हैं, न कि Python2 - कि वह कुछ तोड़ सकते हैं। संभावित रूप से संपूर्ण ओएस ... यह मेरी धारणा है, हालांकि परीक्षण नहीं किया गया है।
ऐवोरिक जूल

3
कोई भी सिस्टम सॉफ़्टवेयर पायथन को प्रदान किए गए सिस्टम के लिए पूर्ण पथ का उपयोग करेगा।
एडम वंडेनबर्ग

2

एक त्वरित Google खोज के अनुसार, यह अपडेट केवल आपके द्वारा खोले गए वर्तमान शेल पर लागू होता है। यह शायद python3 टाइप करके तय किया जा सकता है, क्योंकि मैक और लिनक्स इस तरह की चीजों के लिए पर्याप्त हैं जैसे कि यह संयोग है। Google खोज के परिणाम से लिंक करें।

इसके अलावा, जैसा कि निंजेजेको ने कहा है, अधिकांश कार्यक्रमों को अभी तक 3.x में अपडेट नहीं किया गया है, इसलिए 3.x के रूप में डिफ़ॉल्ट अजगर होने से अनुप्रयोगों में उपयोग की जाने वाली कई अजगर लिपियों को तोड़ दिया जाएगा।


2

मैं OS X 10.7.5 और पायथन 3.4.2 का उपयोग कर रहा हूं। यदि आप टाइप करते हैं python3और आप इसे चलाना चाहते हैं तो यह अजगर 3 का उपयोग करके इसे चलाएगा। उदाहरण के लिए pyhton3 test001.py। मैंने एक परीक्षण कार्यक्रम चलाया, जिसे मैंने test001 कहा। आशा है कि ये आपकी मदद करेगा।


5
ढेर अतिप्रवाह में आपका स्वागत है! ऐसा लगता है कि आपका उत्तर पूछे गए प्रश्न का वास्तविक उत्तर नहीं है। यदि आप इसे ठीक करना चाहते हैं, तो कृपया stackoverflow.com/help/how-to-answer की मदद लें ।
अन्य

मैंने अपने मैक पर काम करने के लिए python3 पाने की कोशिश में HOURS बिताया - पुराने 'python' के बजाय 'python3' टाइप किया।
युकोड

1

पर जाए:

मेरा कंप्यूटर -> गुण -> उन्नत -> पर्यावरण चर -> प्रणाली चर

मान लीजिए कि आपके पास पहले से ही python 2.7 पथ चर में जोड़ा गया है और आप डिफ़ॉल्ट पथ को python 3.x में बदलना चाहते हैं

फिर python2.7 पथ से पहले python3.5.x फ़ोल्डर का पथ जोड़ें।

ओपन cmd: टाइप "पायथन --version"

अजगर संस्करण को अजगर 3.5.x में बदल दिया जाएगा


3
वह विंडोज है।
charles

कुछ IDE thas में टर्मिनल / cmds / कंसोल शामिल हैं, जो पर्यावरण चर का प्रचार करते हैं। एम्बेड टर्मिनल के अंदर परिवर्तन प्राप्त करने के लिए IDE को पुनरारंभ करें।
बेकार

0
sudo mv /usr/bin/python /usr/bin/python2
sudo ln -s $(which python3) /usr/bin/python

यह स्क्रिप्ट को तोड़ देगा, लेकिन वास्तव में अजगर को बदलने का तरीका है। आपको स्क्रिप्ट्स को फिर से लिखना चाहिए, न कि python2.x। यह उस जगह की परवाह किए बिना काम करेगा जहां आप कॉल करते हैं systemया exec


0

संक्षेप में: पर्यावरण चर में पथ बदलें!

विंडोज के लिए:

  • उन्नत किया हुआ System Settings > Advance (tab)। नीचे आपको मिलेगा'Environment Variables'

  • पर डबल क्लिक करें Path। आप अजगर स्थापना में से एक के लिए रास्ता देखेंगे, अपने इच्छित संस्करण के पथ में बदल सकते हैं।


0

Python3 के निष्पादन पथ की जाँच करें जहाँ यह पुस्तकालय है

$ which python3
/usr/local/bin/python3  some OS might have /usr/bin/python3

bash_profile फ़ाइल खोलें और एक उपनाम जोड़ें

vi ~/.bash_profile  
alias python='/usr/local/bin/python3' or alias python='/usr/bin/python3'

संशोधनों का प्रभाव लेने के लिए bash_profile को पुनः लोड करें

source ~/.bash_profile

अजगर कमांड चलाएं और जांचें कि क्या यह अजगर 3 के साथ लोड हो रहा है

$ python --version
Python 3.6.5
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.