OS X पर 3.x पर पायथन के डिफ़ॉल्ट संस्करण को कैसे सेट करें?


329

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

वर्तमान में:

$ python
    version 2.7.5
$ python3.3
    version 3.3

मैं इसे कैसे सेट करूं ताकि हर बार जब मैं $ pythonइसे चलाता हूं तो 3.3 खुलता है?



आप के साथ अजगर के संस्करण का प्रबंधन कर सकते हैं pyenv
शिन किम

जवाबों:


579

डिफ़ॉल्ट अजगर के निष्पादन योग्य संस्करण के सिस्टम को बदलने से कुछ एप्लिकेशन टूट सकते हैं जो python2 पर निर्भर करते हैं।

हालाँकि, आप अधिकांश गोले में आदेशों को उपनाम दे सकते हैं, चूंकि macOS में डिफ़ॉल्ट गोले (10.14 और नीचे बश में; 10.15 में zsh) एक समान सिंटैक्स साझा करते हैं। आप उर्फ ​​अजगर = 'पायथन 3' को अपने में रख सकते हैं ~/.profile, और फिर ~/.profileअपने ~/.bash_profileऔर / या आपके ~/.zsh_profileजैसे स्रोत के साथ स्रोत :

[ -e ~/.profile ] && . ~/.profile

इस तरह, आपका उपनाम गोले भर में काम करेगा।

इसके साथ ही pythonअब कमांड इनवाइट करता है python3। यदि आप इस अवसर पर "मूल" अजगर (कि python2 को संदर्भित करता है ) का आह्वान करना चाहते हैं , तो आप उपयोग कर सकते हैं command python, जो अन्य उपनामों को छोड़ देगा, और सभी गोले में काम करेगा।

यदि आप दुभाषियों को अधिक बार लॉन्च करते हैं (मैं करता हूं) , तो आप हमेशा और अधिक उपनाम जोड़ने के लिए भी बना सकते हैं, अर्थात:

alias 2='python2'
alias 3='python3'

युक्ति: स्क्रिप्ट के लिए, इसके बजाय एक शेबंग का उपयोग करने की तरह:

#!/usr/bin/env python

उपयोग:

#!/usr/bin/env python3

इस तरह, प्रणाली अजगर को चलाने के लिए python3 का उपयोग करेगा निष्पादनयोग्य


2
क्या इसे ~ / .bash_aliases के बजाय ~ / .bash_profile में नहीं डाला जाना चाहिए?
अनसेटलेटिंगट्रेंड

4
पुटिंग alias python=python3और फिर pythonओएक्सएक्स एल कैपिटान पर मेरे टर्मिनल में चलना मेरे लिए काम नहीं करता था। इसे बचाने की कोशिश की दोनों ~ / .bash_aliases और ~ / .bash_profile।
हेमेकर87

43
@ Haymaker87 फ़ाइल source ~/.bash_profileको संपादित करने के बाद चलाते हैं ~/.bash_profile
वी लू

15
आप पाइप के लिए भी ऐसा कर सकते हैं:alias pip='pip3.6'
स्टीफन

@ surfer190 जो सूडो के साथ चलने पर समस्या पैदा करेगा, है ना?
संतोष कुमार

141

आप इसे सांकेतिक लिंक द्वारा हल कर सकते हैं।

unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python

24
यह सही उत्तर है (उपनाम अच्छे हैं, लेकिन केवल बैश द्वारा ही सुलभ हैं, जो आपको जहां से कॉल कर सकते हैं) को सीमित करता है। हालांकि, मैं सिम्बलिंक को हटाने के unlinkबजाय उपयोग करूंगा rm(यदि आप गलती से एक अनुगामी स्लैश जोड़ते हैं तो आपके rmकुछ बुरे परिणाम हो सकते हैं)। वैकल्पिक रूप से, आप कर सकते हैं ln -s -f ...जो वर्तमान सिम्लिंक को अधिलेखित कर देना चाहिए।
चाड बेफुस

2
@ChadBefus आपके उत्तर के लिए धन्यवाद। मैं आपके विचार से सहमत हूं। अनलिंक आरएम से अधिक सुरक्षित है।
शिन किम

3
क्या यह उन लिपियों के लिए कोई परिणाम है जो होने की उम्मीद pythonकरते हैं python2.7?
एंटोन तारासेंको

19
unlink: /usr/bin/python: Operation not permitted
macOS

4
@MarksCode बस दूसरी मूल लाइन (यानी के ln -s... साथ /local/ ) चलाने की कोशिश करें ।
एलियाडल

42

~ / .Bash_profile फ़ाइल खोलें ।

vi ~/.bash_profile

फिर निम्नानुसार उपनाम रखें:

alias python='python3'

अब फ़ाइल को सहेजें और फिर ~ / .bash_profile फ़ाइल चलाएँ ।

source ~/.bash_profile

बधाई !!! अब, आप अजगर टाइप करके python3 का उपयोग कर सकते हैं ।

python --version

अजगर 3.7.3


यदि आपको ऐसा लगता है कि मैंने ऐसा किया है कि पाइप के लिए भी यही मुद्दा लागू होता है (यानी पाइप --version अभी भी 2.7.x है) तो आपको pip3 के लिए समान चरण करने की आवश्यकता होगी। vi ~ / .bash_profile, उपनाम पिप = 'pip3', स्रोत ~ /
.bash_profile

क्या मुझे source ~/.bash_profileअपने टर्मिनल को फिर से खोलने की जरूरत है ? यह python2 को एक बार बंद करने और टर्मिनल को फिर से खोलने के लिए प्रकट होता है।
रिकी अगुइलर

21

टर्मिनल प्रकार पर जाएं:

alias python=python3.x

यह डिफ़ॉल्ट पायथन को python3.x के रूप में सेटअप करेगा


1
इसने मेरे लिए काम किया लेकिन "उर्फ अजगर = अजगर 3" का उपयोग करके
21

यह उस टर्मिनल उदाहरण के लिए अस्थायी रूप से अजगर संस्करण सेट करेगा।
अश्विन R


10

मैं इस एक के लिए खेल में थोड़ा विलंबित हूं, लेकिन मैंने सोचा कि मुझे एक अद्यतन उत्तर देना चाहिए क्योंकि मैंने इस मुद्दे का सामना अपने लिए किया है। कृपया ध्यान दें कि यह केवल मैक-आधारित सेटअप पर लागू होगा (मैंने इसे विंडोज या लिनक्स के किसी भी स्वाद के साथ आज़माया नहीं है)।

इस काम को करने का सबसे सरल तरीका है, ब्रू के माध्यम से पायथन को स्थापित करना । यदि आपके पास काढ़ा स्थापित नहीं है, तो आपको पहले ऐसा करने की आवश्यकता होगी। एक बार स्थापित होने के बाद, टर्मिनल पर निम्नलिखित कार्य करें:

brew install python

यह पायथन 3 स्थापित करेगा। इसे स्थापित करने के बाद, इसे चलाएं:

ls -l /usr/local/bin/python*

आप इसकी पायथन स्थापित करने के लिए काढ़ा द्वारा बनाई गई सभी लिंक देखेंगे। यह कुछ इस तरह दिखेगा:

lrwxr-xr-x  1 username  admin  36 Oct  1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3
lrwxr-xr-x  1 username  admin  43 Oct  1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config
lrwxr-xr-x  1 username  admin  38 Oct  1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7
lrwxr-xr-x  1 username  admin  45 Oct  1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config
lrwxr-xr-x  1 username  admin  39 Oct  1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m
lrwxr-xr-x  1 username  admin  46 Oct  1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config

इस उदाहरण में पहली पंक्ति python3सिमलिंक दिखाती है । इसे डिफ़ॉल्ट pythonसिमिंक के रूप में सेट करने के लिए निम्नलिखित चलाएं:

ln -s -f /usr/local/bin/python3 /usr/local/bin/python

एक बार सेट करने के बाद, आप कर सकते हैं:

which python

और यह दिखाना चाहिए:

/usr/local/bin/python

आपको उस शेल में नए सिमलिंक का उपयोग करने के लिए अपने वर्तमान टर्मिनल शेल को फिर से लोड करना होगा, हालांकि, सभी नए खुले शेल सत्र (स्वचालित रूप से) इसका उपयोग करेंगे। इसका परीक्षण करने के लिए, एक नया टर्मिनल शेल खोलें और निम्नलिखित चलाएँ:

python --version

महान काम करता है ( संदर्भ )
नेपो ज़न्नत

9

'एप्लिकेशन' पर जाएं, 'पायथन' फ़ोल्डर में प्रवेश करें, 'अपडेट शैल प्रोफाइल डॉट कॉम' या इसी तरह की एक बश लिपि होनी चाहिए। उस स्क्रिप्ट को चलाएं और उसे यह करना चाहिए।

अपडेट: ऐसा लगता है कि आपको इसे अपडेट नहीं करना चाहिए: डिफ़ॉल्ट अजगर संस्करण को कैसे बदलना है?


8

इसने मेरे लिए काम किया। मैंने उपनाम जोड़ा और अपने टर्मिनल को फिर से शुरू किया :

alias python=/usr/local/bin/python3

6

मेरा मानना ​​है कि यहां पर उतरे अधिकांश लोग ZSH थोरुग इटर्म या जो भी इस्तेमाल कर रहे हैं, और जो आपको इस जवाब में लाते हैं ।

आपको ~/.zshrcइसके बजाय अपने आदेशों को जोड़ना / संशोधित करना होगा।


3

मुझे यकीन नहीं है कि यह ओएस एक्स पर उपलब्ध है, लेकिन लिनक्स पर मैं moduleकमांड का उपयोग करूंगा । यहाँ देखें

मॉड्यूलफाइल को सही ढंग से सेट करें, फिर अपनी आरसी फाइल में कुछ इस तरह जोड़ें (जैसे ~ / .bashrc)।

module load python3.3

इससे यह हो जाएगा कि जब आप किसी सिस्टम डिफॉल्ट्स को प्रभावित किए बिना लॉग इन करते हैं तो आपके रास्ते आवश्यक हो जाते हैं।


3

मुझे लगता है कि जब आप अजगर स्थापित करते हैं, तो यह आपके ~ / .bash_profile फ़ाइल में निर्यात पथ कथन डालता है। इसलिए यदि आप पायथन 2 का उपयोग करने का इरादा नहीं रखते हैं, तो आप उस बयान को वहां से हटा सकते हैं। जैसा कि ऊपर कहा गया है उपनाम भी इसे करने का एक शानदार तरीका है।

यहां बताया गया है कि ~ / .bash_profile - vim ./.bash_profile से संदर्भ कैसे निकालें (AKA कुछ ऐसा निकालें: जैसे निर्यात PATH = "/ उपयोगकर्ता / bla / anaconda: $ PATH) - सहेजें और बाहर निकलें - स्रोत ।/ .bash_profile परिवर्तनों को सहेजने के लिए


ऐसा नहीं होता है
co2f2e


2

एक मैक पर डिफ़ॉल्ट रूप में पायथन 3 को सेट करने का सही और गलत तरीका

इस लेख में लेखक ने डिफ़ॉल्ट अजगर को स्थापित करने के तीन तरीकों पर चर्चा की:

  1. क्या नहीं कर सकते है।
  2. हम क्या करते हैं (लेकिन यह भी नहीं करना चाहिए)।
  3. हमें क्या करना चाहिए!

ये सभी तरीके काम कर रहे हैं। आप तय करें कि कौन सा बेहतर है।


1

यदि आप एक का उपयोग कर रहे हैं virtualenvwrapper, तो आप बस इसका उपयोग करके पता लगा सकते हैं which virtualenvwrapper.sh, फिर इसका उपयोग करके vimया किसी अन्य संपादक को खोल सकते हैं, फिर निम्नलिखित को बदल सकते हैं

# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
    VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi

लाइन बदलें VIRTUALENVWRAPPER_PYTHON="$(command \which python)"करने के लिए VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"


1

मेरे लिए समाधान PyCharm का उपयोग कर रहा था और डिफ़ॉल्ट पाइथन संस्करण को उसी के साथ सेट कर रहा था, जिसके साथ मुझे काम करने की आवश्यकता है।

PyCharm स्थापित करें और फ़ाइल पर जाएं ==> नई परियोजना के लिए प्राथमिकताएं, फिर अपनी परियोजनाओं के लिए इच्छित दुभाषिया चुनें, इस मामले में अजगर 3.3


1

यदि आप macports का उपयोग करते हैं, तो आपको उपनाम या पर्यावरण चर के साथ खेलने की आवश्यकता नहीं है, बस इस Q & A द्वारा बताई गई विधि macports पहले से ही प्रस्तुत विधि का उपयोग करें:

कैसे करें: मैकपोर्ट अजगर का चयन करते हैं

टी एल; डॉ:

sudo port select --set python python27

1

यदि आप macports का उपयोग कर रहे हैं, तो ऐसा करने का एक आसान तरीका है:

Daud:

port install python37

स्थापित करने के बाद, डिफ़ॉल्ट सेट करें:

sudo port select --set python python37

sudo port select --set python3 python37

अपनी cmd विंडो को पुनः आरंभ करें, समाप्त।


1

खैर ... यह थोड़े पुराना है। लेकिन फिर भी एक अच्छे उत्तर के हकदार हैं।

और एक अच्छा आप मैक पर डिफ़ॉल्ट अजगर को छूना नहीं चाहते हैं।

किसी भी पायथन संस्करण को स्थापित करें जिसकी आपको आवश्यकता है Homebrew या जो कुछ भी हो और virtualenv में इसका उपयोग करें। वर्चुअनव को अक्सर कुछ बकवास की तरह माना जाता है, लेकिन यह अभी भी रास्ता है, अजगरों को बदलते हुए अजगर संस्करण सिस्टम-वाइड से बेहतर है (macOS खुद को ऐसे कार्यों से बचाने की संभावना है) या उपयोगकर्ता-चौड़ा, बैश-वाइड - जो भी हो। बस डिफ़ॉल्ट पायथन के बारे में भूल जाओ। Venv जैसे खेल के मैदानों का उपयोग करना आपके OS के लिए सबसे अधिक, बहुत आभारी होगा।

उदाहरण के लिए, उदाहरण के लिए, कई आधुनिक लिनक्स वितरण सिस्टम में केवल पायथन 3 को छोड़कर पायथन 2 को आउट-ऑफ-द-बॉक्स से छुटकारा दिलाते हैं। लेकिन हर बार जब आप एक निर्भरता के रूप में python2 के साथ कुछ पुराना स्थापित करने की कोशिश करते हैं ... आशा है कि आप समझते हैं कि मेरा क्या मतलब है। एक अच्छा डेवलपर परवाह नहीं करता है। अच्छे डेवलपर्स अपनी इच्छा से अजगर संस्करण के साथ स्वच्छ खेल के मैदान बनाते हैं।


0

मैक उपयोगकर्ताओं को बस टर्मिनल पर निम्नलिखित कोड चलाने की आवश्यकता है

brew switch python 3.x.x

3.xx नया अजगर संस्करण होना चाहिए।

यह सभी सिस्टम लिंक को अपडेट करेगा।


0

Python3 के लिए उर्फ ​​अजगर के सुझाव आभासी वातावरण के साथ समस्याओं का कारण बनेंगे जो अजगर का संस्करण निर्धारित करते हैं (जैसे: pyenv)। Pyenv के साथ, आप संस्करण को विश्व स्तर पर सेट कर सकते हैं जैसे:

pyenv global 3.8.2

और फिर किसी भी विशिष्ट परियोजना में, आप एक .python- संस्करण फ़ाइल बना सकते हैं, जिसके अंदर अजगर संस्करण है:

pyenv local 2.7.1

मेरी राय में एक प्रणाली पर अजगर के कई संस्करणों का प्रबंधन करने का यह सबसे अच्छा तरीका है।

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