अजगर 3 डिफ़ॉल्ट अजगर बाइनरी क्यों नहीं है?


42

मैं pythonएक टर्मिनल विंडो में टाइप करता हूं । मुझे पायथन 2.7 मिलता है और पायथन 3.5 नहीं। डॉक्स के अनुसार, पायथन 3.5 को पहले से लोड होना चाहिए।


1
यदि आप एक आभासी वातावरण का उपयोग करते हैं: "python3 -m venv my-venv", तो किसी भी टर्मिनल से उस आभासी वातावरण को "स्रोत ... / my-env / bin / सक्रिय" कहकर सक्रिय करें, फिर अजगर 3.5 होगा। उस टर्मिनल में डिफ़ॉल्ट। आप "python -V" कॉल करके वर्तमान डिफ़ॉल्ट संस्करण की जांच कर सकते हैं।
क्रेग हिक्स

जब आपका उत्तर मददगार हो, तो मैंने पूछा कि क्यों। कैसे नहीं। और, यह बड़ी बहस है। यहाँ। वर्तमान संस्करण के बजाय डिफ़ॉल्ट रूप से पुराना संस्करण क्यों होना चाहिए।
गिवोंज १४'१

1
आप मेरी "टिप्पणी" के बारे में बिल्कुल सही हैं! यही कारण है कि मैंने एक टिप्पणी लिखी और उत्तर नहीं।
क्रेग हिक्स

जवाबों:


56

मुझे नहीं पता कि आप "डॉक्स" क्या पढ़ रहे हैं और न ही वे क्या कहते हैं, लेकिन /usr/bin/pythonअजगर के डिफ़ॉल्ट संस्करण का सिर्फ एक प्रतीकात्मक लिंक है, इस मामले में 2.7, जो pythonटर्मिनल पर सिर्फ टाइपिंग का परिणाम है । यह PEP 394 का परिणाम है जो इसे परिभाषित करता है

  • कुछ समय के लिए, सभी वितरणों को यह सुनिश्चित करना चाहिए कि pythonसमान लक्ष्य को संदर्भित करता हैpython2

type pythonऔर file /usr/bin/pythonइस बात की पुष्टि करेगा।

अधिवेशन से इतर इस व्यवस्था का कारण यह है कि क्सिअल में स्रोत पैकेज पायथन-डिफॉल्ट्स संस्करण 2.7.11 है , इसलिए अजगर प्रतीकात्मक लिंक इस संस्करण की ओर इशारा करता है

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

कर रहे हैं अजगर 3 में माइग्रेट सब कुछ करने की योजना और डिफ़ॉल्ट के रूप में अंकन।


यह शायद रिदमबॉक्स-ज़ेतिस्टिस्ट प्लगइन को तोड़ रहा है जो कि ज़ेतिगेइजिस्ट-पाइथन 3 पर निर्भर करता है, लेकिन यह नहीं मिल सका।
खुर्शीद आलम

2
यह ओपी का मतलब है।
सईदबाक़र

10

पायथन 3.5 REPL पाने के लिए या एक स्क्रिप्ट चलाने के लिए जो संगत है, टाइप करें python3। यह सभी विरासत अजगर 2.x (जो हमेशा रहा है, और जुड़ा रहेगा python) के साथ संगतता बनाए रखना है ।

pythonयदि आप .desktopइसके लिए ( ~/.local/share/applications/) में, टर्मिनल खोलने के लिए और उदाहरण के लिए REPL शुरू करने के लिए डैश लगा सकते हैं । अजगर के लिए डिफ़ॉल्ट GUI REPL वातावरण नहीं है, और सामान्य इंटरफ़ेस अपेक्षाएं हैं कि उपयोगकर्ता टर्मिनल पर जाएगा।

अजगर 3.5 के डिफ़ॉल्ट होने की बात यह है कि रखवाले सभी सिस्टम स्क्रिप्ट्स को अजगर 2.x से अजगर 3.x पर भेजते हैं, यह नहीं कि अजगर 3 सभी मामलों में अजगर 2 की जगह लेगा।


इसलिए, मुझे लगता है कि सही प्रश्न है, मैं अपने पथ में python3 कैसे जोड़ूं, ताकि यह अपने आप निष्पादित हो जाए?
गिवोंज

क्या आपका मतलब है, आप एक संकलित कार्यक्रम की तरह निष्पादित करने के लिए अजगर स्क्रिप्ट कैसे प्राप्त करते हैं?
एंड्रयू कीच

मिल गया धन्यवाद। बस कमांड प्रॉम्प्ट पर python3 टाइप करें।
गिवोंज

2
लंबी अवधि में एआईयूआई / usr / बिन / अजगर के साथ क्या करना है यह अभी भी एक खुला सवाल है। Python2 स्क्रिप्ट के लिए सबसे अच्छा अभ्यास स्पष्ट रूप से python2 का उपयोग करना होगा।
पीटर ग्रीन

1
यदि आप इसे दूर से पोर्टेबल होना चाहते हैं , तो लिपियों में उपयोग करने के बजाय #!/usr/bin/python3(या #!/usr/bin/python2केवल विशेष रूप से अजगर के लिए) बेहतर है #!/usr/bin/env python3। अधिकांश भाग के लिए, यह सिर्फ प्रलेखन है, क्योंकि कई मामलों में इसे $ python3 your_pyprogram.pyवैसे भी उपयोग किया जाएगा ।
माइकल

4

आप मानते हैं कि डिफ़ॉल्ट पायथन के रूप में उपलब्ध होना चाहिए python। वह धारणा गलत है।

पायथन 3 "प्रीलोडेड" और नो पायथन 2 के साथ आने वाली प्रणाली पर, केवल python3और नहीं होगा python

पायथन 3 के लिए लिखे गए कोड को हमेशा एक दुभाषिया कहा जाना चाहिए python3। पायथन 2 के लिए लिखा गया कोड ऐतिहासिक रूप से दिखेगा python

समय से एक बिंदु आ सकता है, संभवतः अब से दशकों में, जहां लगभग कोई भी पायथन 2 को याद नहीं करता है, जब pythonइसे संदर्भित करना शुरू हो सकता है python3। यह विशुद्ध रूप से सुविधा के लिए होगा, और अगर समय से पहले नहीं किया जाना चाहिए, तो नहीं किया जाना चाहिए! निम्नलिखित प्रभाव के कारण कोई जल्दी नहीं है:

"वर्तमान पुरानी" प्रणालियों का कोई ज्ञान नहीं होगा python2, केवल python, इसलिए यह पायथन 2 कोड की तलाश करने के लिए सही समझ में आता है python। यही कारण है कि python"जब तक अजगर 2 कोड मौजूद है" के लिए अजगर 2 का उल्लेख करना चाहिए।

पायथन 2 के लिए लिखा गया नया कोड, अगर यह समझ में आता है, तो पूरी तरह से खोज सकता है python। यह भी लग सकता है python2, अगर यह केवल पायथन 3 जागरूक और अच्छी तरह से तैयार सिस्टम पर चलाने का इरादा है (जो इस तरह के लिंक की पेशकश करना चाहिए)।

पायथन 2 कोड का उपयोग करने का लाभ python2यह होगा कि इसे एक बार छूने के बाद कोई अतिरिक्त स्पर्श की आवश्यकता नहीं pythonहोगी python3, जो कि कभी नहीं हो सकता है, या एक बार pythonबिल्कुल गायब हो जाता है, जो हो सकता है या नहीं हो सकता है। (यह सच हो सकता है, यदि पायथन 2 कोड काल्पनिक पायथन 4 के बाद मर जाता है, तो अपने दुभाषिया के साथ लोकप्रिय हो जाता है python4। - क्योंकि यह python3या तो इंगित करने देता है या python4दोनों भ्रामक होगा।)


2

अजगर दोनों 2.x, 3.x संस्करण उपलब्ध हैं। यदि आप अजगर को बुलाते हैं तो यह अजगर 2 को इंगित करता है। यह अजगर को 2.x लोड करेगा

नीचे की छवि आपकी मदद करेगी।

यहाँ छवि विवरण दर्ज करें


1
आप एक ही कमांड कैसे टाइप करते हैं और 2 अलग-अलग परिणाम प्राप्त करते हैं?
गिवोंज

4
दूसरे मंगलाचरण से अलग आउटपुट pythonका उपयोग ऑटोकम्प्लीटर <tab>से क्वेरी करने के लिए होता है, जो तब के संभावित क्रमांकन को आउटपुट करता है python*और आपको एक नए प्रॉम्प्ट पर लौटाता है।
एंड्रयू कीच

@givonz, हम्म मैंने TAB कुंजी भाई का उपयोग किया। इसका आउटपुट नहीं है। यह बाइनरी पैटर्न संभव है।
r --dʒɑ

नकारात्मक वोट किस लिए?
r --dʒɑ

2
मैं निराश नहीं हुआ, लेकिन मुझे लगता है कि उत्तर में यह बताना चाहिए कि 2 पहले आउटपुट अलग-अलग क्यों हैं और apt-cacheविशेषकर उबंटू शुरुआती लोगों की भूमिका क्या है ।
अल

2

पायथन 3.x को 16.04 के साथ काम करना चाहिए - वास्तव में, यह निश्चित रूप से काम करेगा। मेरे पास Ubuntu 14.04 है और मेरे पास Python 3.4.3 है - आपको यह जांचने के लिए सभी python3करना होगा कि यह किस प्रकार का है और यह आपको बताना चाहिए कि आप कौन सा संस्करण चला रहे हैं।


2
वैसे मैं OS कंप्यूटर विज्ञान का उपयोग नहीं करूंगा। और सख्ती से बोलना: उबंटू एक लिनक्स आधारित ओएस है न कि यूनिक्स आधारित।
मगु_

मैं अभी तक कुछ विशेष संकेतों और अलग-अलग, लेकिन बारीकी से लिखे गए आदेशों के अलावा अंतर शर्त और यूनिक्स को समझना चाहता हूं। हालाँकि, मैं सोलारिस में जितना देखता हूँ उससे कहीं अधिक उन्नत है।
गिवोंज

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