सवाल 'पायथन' प्रोग्राम कमांड कैसे पाइथन 3 निष्पादित करने के लिए?


python प्रोग्राम कमांड पायथन 2 निष्पादित करता है। पायथन 3 का उपयोग करके निष्पादित किया जा सकता है python3 आदेश। पाइथन 3 का उपयोग करके कैसे निष्पादित किया जा सकता है python आदेश?


224
2017-07-17 08:04


मूल


बस एक चेतावनी: 2.7 के बजाय python3 को इंगित करने के लिए / usr / bin / python symlink को बदलने का प्रयास न करें। उबंटू रिपोज़ में उपलब्ध कई कार्यक्रमों को पायथन 2.x के अनुकूल होने के लिए / usr / bin / python की आवश्यकता होती है। - soulsource
@soulsource, हाँ मुझे इसके बारे में पता है। यही कारण है कि मैंने पूछा कि एक "अपग्रेड" विकल्प उपलब्ध है या नहीं। - Giri
आह, अब मुझे अपग्रेड के साथ क्या मतलब था ... असल में उबंटू डेवलपर्स उस पर काम कर रहे हैं: wiki.ubuntu.com/Python/3 "यह उबंटू 14.04 एलटीएस के लिए डेस्कटॉप सीडी छवियों पर केवल पायथन 3 के लिए एक रिलीज लक्ष्य है।" - soulsource
एक और नोट पर, कोई यहां आ रहा है क्योंकि वे पाइथन 3 को अपने डिफ़ॉल्ट बनाने के बारे में जानने की कोशिश कर रहे हैं, इसके बजाय वर्चुअल वातावरण (जैसे वर्चुअलएन्व) या कंटेनर (जैसे एलएक्ससी या डॉकर) पर शोध करने में उपयोग मिल सकते हैं। - Kevin
शीर्ष पर आत्माओं की चेतावनी के संदर्भ में पीईपी 394 जो पाइथन निष्पादन योग्य सह-अस्तित्व के लिए सम्मेलनों का नामकरण करता है और जिस पर पाइथन प्रोग्रामर और पैकेज रखरखाव करते हैं (और चाहिए) भरोसा करते हैं। - David Foerster


जवाब:


उपनाम का उपयोग करना एक आसान सुरक्षित तरीका होगा। इसे अंदर रखें ~/.bashrc या ~/.bash_aliases फ़ाइल:

alias python=python3

फ़ाइल में उपरोक्त जोड़ने के बाद, नीचे दिए गए आदेश को चलाएं:

source ~/.bash_aliases or source ~/.bashrc

उदाहरण के लिए:

$ python --version
Python 2.7.6
$ python3 --version
Python 3.4.3
$ alias python=python3
$ python --version
Python 3.4.3

उपनाम को रोकने के लिए उपयोग करें command अंतर्निहित कमांड:

$ command python --version
Python 2.7.6

उपनाम को रोकने के लिए एक और तरीका उपयोग करना है \ आदेश से पहले।

$ \python --version 
Python 2.7.6

वर्तमान खोल में उपनाम को अक्षम करने के लिए उपयोग करें unalias अंतर्निहित कमांड:

$ unalias python
$ python --version
Python 2.7.6

258
2017-07-17 08:13



तो कोई "अपग्रेड" विकल्प .. ?? - Giri
@ जीरी आपने कहा कि आपके पास है python3। अपग्रेड के लिए क्या? - Radu Rădeanu
वास्तव में मैं 2.7 को मिटा देना चाहता हूं और इसे 3.3 के साथ बदलना चाहता हूं। ऐसा लगता है कि अब इसके लिए एक बुरा विचार है .. - Giri
+1 3.3 के साथ काम करने में सक्षम होने के लिए 2.7 को शुद्ध करने का कोई कारण नहीं है। चूंकि बहुत से सॉफ्टवेयर अभी भी 2.7 पर निर्भर करते हैं; बस इसे चारों ओर घूमते रहो। - don.joey
@begueradj एन उपनाम एक से बिल्कुल अलग है प्रतीकात्मक लिंक। - Radu Rădeanu


[जून 2016] संक्रमण पर जानकारी के लिए अनुशंसित जगह आधिकारिक है उबंटू पायथन पृष्ठ।


वहाँ से उबंटू विकी:

उबंटू और डेबियन दोनों के लिए, हमारे पास है चल रही है परियोजना लक्ष्य पाइथन 3 को डिफ्रोस में डिफ़ॉल्ट, पसंदीदा पायथन संस्करण बनाने के लिए।

यह क्या नहीं करता मतलब है:

  • /usr/bin/python पायथन 3 को इंगित करेगा। नहीं, ऐसा नहीं होने वाला है (जब तक पीईपी 394 अन्यथा वकालत करता है, जो निकट भविष्य के लिए संदिग्ध है)। /usr/bin/python तथा /usr/bin/python2 पायथन 2.7 और इंगित करेगा /usr/bin/python3 नवीनतम समर्थित पायथन 3 संस्करण को इंगित करेगा।

  • पायथन 2 संग्रह से हटा दिया जाएगा। नहीं, ऐसा नहीं होने वाला है। हम उम्मीद करते हैं कि पाइथन 2.7 समर्थित रहेगा और उबंटू में काफी लंबे समय तक उपलब्ध होगा पीईपी 373 2020 तक अपस्ट्रीम बग फिक्स रखरखाव समर्थन का वादा करता है।

अन्य पैकेज निर्भरताओं की वजह से प्रतीकात्मक लिंक को बदलने की अनुशंसा नहीं की जाती है, लेकिन वे "पाइथन 3 को डिफ्रोस में पसंदीदा, पसंदीदा पायथन संस्करण बनाने के लिए प्रोजेक्ट लक्ष्यों को जारी रखते हैं"।


सीएलआई उपयोग के लिए, जैसे @ राडू रादेनु, मैं उपयोगकर्ता के उपनाम डालने की सलाह दूंगा ~/.bashrc, .bash_aliases फ़ाइल (सहित विभिन्न फाइलें ~/.bash_profile, सभी एक साथ लोड हो गए हैं और केवल संगठनात्मक उद्देश्यों के लिए हैं)। अजगर आभासी वातावरण अच्छी तरह से काम करते हैं।

जैसे कि:

alias python=python3

या

alias python='/usr/bin/python3'

स्क्रिप्ट तब कुछ इस तरह से शुरू कर सकते हैं:

#!/usr/bin/env python

के बजाय

#!/usr/bin/python3

मैं अभी भी उपयोग करने की सिफारिश करेंगे #!/usr/bin/python3 (या #!/usr/bin/env python3) सरल क्रॉस-संगतता के लिए स्क्रिप्ट में।

का उपयोग करते हुए env वर्चुअल वातावरण के साथ मिश्रित उपयोग के लिए अच्छा है।


68
2018-06-02 16:31



यह अब पुराना प्रतीत होता है: उन्होंने ज़ेनियल में पायथन 2 को हटाने की योजना बनाई, लेकिन फिर नहीं किया। - OrangeDog
@ ऑरेंजडॉग, अपडेट के लिए धन्यवाद। हां, मैंने जो विकी-पेज उद्धृत किया है, अब इसे पुराने रूप में चिह्नित किया गया है, क्योंकि पिछले दो वर्षों में केवल पायथन 3 पर जाने के लिए और प्रगति हुई है। इस प्रगति का पालन करने वाला नया पृष्ठ आधिकारिक है उबंटू पायथन पेज। - Kevin
ज़ेनियल के लिए योजनाओं के संबंध में "नवीनतम" पृष्ठ भी पुराना है। - OrangeDog
मैं नहीं कहूंगा कि यह "पुराना है" जितना "इसे हाल ही में अपडेट नहीं किया गया है।" यह अभी भी इस बारे में पोस्ट रखने के लिए वर्तमान स्थान प्रतीत होता है। हालांकि, यहां टिप्पणियों में, मैं किसी भी अन्य हालिया स्रोतों की सराहना करता हूं जो किसी को मिल सकता है। मेरे उत्तर में अधिक स्रोत जोड़ना, क्यों न केवल परिवर्तन करना है python, रूपांतरण पूर्ण होने तक वास्तव में प्रासंगिक नहीं है। फिर भी, यह सिर्फ एक गैर-मुद्दा बन सकता है। - Kevin
@ ऑरेंजडॉग पाइथन 2 के बिना ज़ेनियल सिस्टम रखना बहुत संभव है - मैंने रास्पबेरी पीआई पर उबंटू जेनियल मेट चलाया है और इसमें डेस्कटॉप था लेकिन नहीं python2.7। अभी भी कुछ वैकल्पिक पैकेज (या डेस्कटॉप अनुभव के लिए आवश्यक हैं) प्रोग्राम हैं जो पाइथन 2 को इतने संभावनाओं में खींचते हैं कि आप उन्हें प्राप्त कर रहे हैं। - Antti Haapala


अपडेट करें: यह गलत तरीका है, मैंने सीखा है, क्योंकि पाइथन 2 और पायथन 3 अदला-बदले नहीं हैं।

आप कमांड लाइन उपकरण आज़मा सकते हैं update-alternatives

$ sudo update-alternatives --config python

अगर आपको "पायथन के लिए कोई विकल्प नहीं" त्रुटि मिलती है तो निम्न आदेश के साथ स्वयं को एक विकल्प सेट करें:

$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10

पथ बदलें /usr/bin/python3 तदनुसार अपने वांछित पायथन संस्करण के लिए।


8
2018-05-04 14:03



पायथन 2 और पायथन 3 विकल्प नहीं हैं। इस उद्देश्य के लिए अद्यतन-विकल्पों का उपयोग न करें। - jobin
वे क्यों नहीं हैं आप में से एक कृपया बताएं क्यों update-alternatives पाइथन के लिए उपयुक्त नहीं है? क्या इसकी वजह है legacy.python.org/dev/peps/pep-0394 ? - Dmitry Grigoryev
विकल्प समान कार्यक्षमताओं के लिए अलग-अलग कार्यान्वयन हैं। पायथन 2 और पायथन 3 समान कार्यक्षमता प्रदान नहीं करते हैं। - Ely
यदि आप मैन्युअल रूप से स्थापित (पीपीए या जो कुछ भी) python3 के अन्य संस्करणों को स्थापित करते हैं तो आप ऐसा कुछ कर सकते हैं। sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2 - David Baucum


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

उदाहरण के लिए, उबंटू पर, एक के लिए 'पीआईपी' अब सही ढंग से नहीं चलाएगा जबतक कि आपने फ़ाइल को सीधे संपादित नहीं किया और शेबांग को '#! / Usr / bin / env python2.7' संदर्भ में बदल दिया। आरएचईएल (Red Hat Enterprise Linux) पर Red Hat, Fedora और CentOS जैसे स्वाद, 'यम' कमांड भी Python 2.7 पर निर्भर है।

मेरा मुद्दा यह है कि आप जोरदार त्रुटियों को फेंकने के लिए कोड की एक बड़ी मात्रा का कारण बनेंगे ताकि आप पाइथन 3.x को संदर्भित करने के लिए टर्मिनल में 'पायथन' टाइप कर सकें।

टर्मिनल में 'python3' कमांड और शेबैंग '#! / Usr / bin / env python3' को अपने पायथन 3.x फ़ाइलों में उपयोग करने के साथ आप बहुत बेहतर हैं।


3
2018-03-25 15:43





कर

cd ~
gedit .bash_aliases

फिर या तो लिखें

alias python=python3

या

alias python='/usr/bin/python3'

फ़ाइल को सहेजें, टर्मिनल बंद करें और इसे फिर से खोलें।
संपर्क


1
2017-09-15 18:36





आप उपयोग कर सकते हैं update-alternatives संगतता मुद्दों के कारण अलग-अलग समय पर आवश्यक कार्यक्रमों के विभिन्न संस्करण प्रदान करने के लिए।

यह जवाब उदाहरण के लिए, जीसीसी / जी ++ के विभिन्न संस्करणों को एक साथ बनाए रखने के लिए चीजों को सेट अप करने के लिए एक अच्छा उदाहरण है।

बस python2.7 और पायथन 3.3 के साथ ऐसा ही करें


0
2017-10-18 13:19



शुरुआती उपयोगकर्ता एक अलग स्थिति में लिंक किए गए उत्तर को आसानी से अनुकूलित नहीं कर पाएंगे। पहले के जवाब को जमा करने के अलावा, पायथन के लिए आवश्यक कदम उठाना अच्छा होगा। - chaskes
यहां मुझे चरण समाधान द्वारा अच्छा कदम मिला है linuxconfig.org/... - woto


cat > /usr/local/bin/py
#!/usr/bin/dash
python3 "$@"
<CTRL-D>

(बशर्ते आपके पास / usr / local / bin पर लिखने की अनुमति हो) वैसे ही

cat > /usr/local/bin/pyi
#!/usr/bin/dash
python3 -i "$@"
<CTRL-D>

तो आप अपने चुने हुए पायथन के लिए केवल py टाइप करें (और #! लाइनों में py का उपयोग करें)।


0
2018-01-15 22:57





आप symlink कर सकते हैं /usr/bin/python सेवा मेरे python3 साथ में

sudo ln -s /usr/bin/python3 /usr/bin/python

अन्य उत्तरों को देखें कि आप ऐसा क्यों नहीं करना चाहते हैं। उबंटू 18.04 अब पायथन 2 के साथ आता है, इसलिए यह बहुत बुरा नहीं होना चाहिए।


0
2018-05-03 21:01