क्या हमें अजगर 2.6 या 2.7 या 3.x का उपयोग करना चाहिए? [बन्द है]


25

अजगर का संस्करण जो मैं उपयोग कर रहा हूं वह 2.6 है , और एक 2.7 और 3.x है। आमतौर पर मैं कुछ तुच्छ कार्यक्रम / स्निपेट के लिए अजगर का उपयोग करता हूं। मुझे एहसास है कि 2.x और 3.x के बीच कुछ प्रमुख अंतर हैं। मैं वास्तव में जानना चाहूंगा, अगर मैं अजगर के साथ एक बड़ा प्रोजेक्ट बनाने जा रहा हूं, तो मुझे अजगर के किस संस्करण का उपयोग करना चाहिए?

क्या मुझे 2.7 में अपग्रेड करना चाहिए, या 3.x पर जाना चाहिए या 2.6 के साथ रहना चाहिए?

निर्णय इन शर्तों पर आधारित होना चाहिए:

  1. इंटरनेट में एक समुदाय के रूप में उपयोगकर्ता की संख्या। अधिक उपयोगकर्ताओं का मतलब है कि अधिक ओपन-सोर्स पैकेज और उनसे मदद लेना।

  2. कार्यक्षमता।

  3. आधिकारिक विकास टीम से समर्थन।

  4. मौजूदा मॉड्यूल / पैकेज के लिए संगतता।

धन्यवाद!


5
क्या कोई अजगर 3.x द्वारा किए गए किसी भी लाभदायक परिवर्तन को इंगित कर सकता है?
lamwaiman1988

1
आप उल्लेख करते हैं कि आप जानते हैं कि मौजूदा मॉड्यूल के साथ संगतता एक मुद्दा है, लेकिन आप हमें यह नहीं बताते हैं कि आपके कोड पर कौन से मौजूदा मॉड्यूल निर्भर हैं। यह प्रश्न बहुत अचूक है।
Wooble

2
विषय से परे; सिफारिशें और एक सवाल वाह में शार्क बनाम गोरिल्ला !

3
यह सवाल है और यह उत्तर केवल समय की एक छोटी खिड़की के लिए उपयोगी होगा। क्या मायने रखता है अब एक साल में ज्यादा समझ नहीं हो सकता है क्योंकि 3.x अधिक परिपक्व हो जाता है।
ब्रायन ओकले

यह देखते हुए कि (ए) प्रश्न 2014 में अभी भी प्रासंगिक है (जैसे कि रोबोटफ्रेमवर्क पायथन 3 के साथ काम नहीं करता है) और (बी) इस सवाल को बंद करने से यह पेज बासी हो जाता है क्योंकि - भले ही यह Google खोज परिणामों पर उच्च आता है - नए उत्तर पोस्ट नहीं किया जा सकता।
बॉब स्टीन

जवाबों:


27

मैं खुद पायथन 2.7 का सुझाव दूंगा। यह पायथन 2.x श्रृंखला में नवीनतम रिलीज है। पायथन के अधिकांश मॉड्यूलों को पायथन 2.x के साथ काम करने के लिए बनाया गया है। पायथन 3 के लिए प्रयास करने और स्थानांतरित करने के लिए एक आंदोलन है, लेकिन पायथन 3 मॉड्यूल में से कोई भी 2 और 3 दोनों के लिए लिखा जाता है। पुरानी सुविधाओं का उपयोग करने के लिए याद रखें जो पायथन 3 में उपलब्ध नहीं हैं, ताकि आप अपने कोड को केवल 2to3 कर सकें इसे पायथन 3 पर चलाएं।

यदि आप पायथन 3 के साथ जाते हैं, तो आप शुरुआती अपनाने वालों में से एक हैं और आपको दूसरों को पायथन 3 डाउनलोड करने के लिए बताने की संभावना होगी (बहुत सारे कंप्यूटरों में सिर्फ पायथन 2 होगा)। दूसरी ओर, नई सुविधाएँ केवल पायथन 3 में आने वाली हैं। अजगर 2 स्थायी रूप से मुख्यता में है। इसलिए मैं 10 साल में अजगर 2 का उपयोग करने का सुझाव नहीं दूंगा।

यदि आप पायथन पैकेज और पायथन 3 के साथ उनकी संगतता पर नज़र रखना चाहते हैं, तो आप इस साइट पर नज़र रख सकते हैं: http://python3wos.appspot.com/


django 3.x का समर्थन नहीं करता है? तो django से परिचित उपयोगकर्ता केवल 3.x का उपयोग नहीं कर सकते हैं?
lamwaiman1988

हे आम तौर पर जब एक नया संस्करण जारी किया जाता है तो इसका मतलब है कि यह पहले बेहतर है। और क्यों अजगर को 2.x सीरीज़ में और दूसरी को 3.x सीरीज़ में रिलीज़ किया जा रहा है? उनमें वास्तविक अंतर क्या है।
HOT

4
पायथन 3 ने भाषा में कुछ बदलाव किए जो फायदेमंद हैं, लेकिन वे पायथन 2 में कुछ विशेषताओं के साथ पीछे की ओर संगत नहीं हैं। इसलिए कुछ चीजों को हटा दिया गया और कुछ को जोड़ा गया (और हटाए गए चीजें उन्हें संगत नहीं बनाते हैं)।
jsternberg

2.7 के लिए +1, संगतता का सबसे अच्छा अनुपात (कम से कम पुस्तकालयों के लिए मैं उपयोग करता हूं) जब तक 3 अधिक व्यापक न हो
Wildpeaks

@Ashinkn परिवर्तन यहाँ docs.python.org/3.0/whatsnew/3.0.html से देखे जा सकते हैं । मुख्य संगतता-ब्रेकिंग परिवर्तन डिफ़ॉल्ट स्ट्रिंग प्रकार के रूप में यूनिकोड (एएससीआईआई के विपरीत) का उपयोग करने से स्विच हो रहा है। जहां लोग बाइट के रूप में स्ट्रिंग्स का उपयोग करते थे [] इससे पहले कि वहाँ एक नया ब्योरा प्रकार है जो इसके बजाय उपयोग किया जाता है। इसके अलावा, किसी भी 2x स्ट्रिंग्स को स्पष्ट रूप से परिभाषित किया जाता है क्योंकि यूनिकोड को नियमित स्ट्रिंग्स में बदलने की आवश्यकता होती है।
इवान प्लाइस

19

मेरी राय है कि हमें लोगों को पायथन 3 से शुरू करने की आवश्यकता है और यदि ऐसी लाइब्रेरी हैं जो पायथन 3 के साथ संगत नहीं हैं, तो हमें ऐसा नहीं करना शुरू करना होगा।

पायथन 3 भाषा का भविष्य है, और जितना अधिक कोड हम इसका उपयोग करते हुए लिखते हैं, उतना बेहतर है।


क्या हम की जरूरत है एक भी दुभाषिया कि अजगर के दोनों संस्करणों के साथ संगत है और समझदारी से उन्हें पार्स कर सकते है। यही है, कहा जाता है कि दुभाषिया python2 और python3 दोनों को एक ही bytecode में संकलित करेगा ताकि वे संगत हों, जिससे python3 का उपयोग python2 लाइब्रेरी के साथ करना संभव हो सके। यदि C, C ++, और Java कर सकते हैं, तो पायथन कर सकते हैं।
ब्रैडेन बेस्ट

4

Django अब "प्रयोगात्मक रूप से" पायथन 3.2+ का समर्थन करता है जैसा कि आप यहां उनके पोस्ट से देख सकते हैं ।

यह देखते हुए, और यह तथ्य कि पायथन 3.x भाषा का भविष्य है, मैं कहूंगा कि पायथन 3 अब सबसे अच्छा है।


2

प्रत्येक परियोजना की जाँच के लिए यदि किसी परियोजना के लिए आवश्यक सभी पुस्तकालयों को पहले से ही 3.x पायथन समर्थन मिला है, तो अजगर 3.x का उपयोग करें क्योंकि यह भविष्य है और यह अंतिम आधिकारिक स्थिर संस्करण है।

लाइब्रेरी की अनुकूलता के लिए आपको जो भी उपयोग करने की आवश्यकता है, उसका उपयोग करें।


2

यह वास्तव में मायने नहीं रखता है कि आप पायथन 2.7 या पायथन 3 का उपयोग करते हैं यदि आप पायथन 2.7 में पुरानी सुविधाओं का उपयोग नहीं करते हैं, तो आप इसे पायथन 3 पर चलाने के लिए अपने कोड को केवल 2to3 कर सकते हैं।


0

मैं पहले एक ही नाव में था और मुझे यही मिला। Python 2.6, 2.7, और 3.2 को MacPorts का उपयोग करके साइड-बाय-साइड स्थापित किया जा सकता है और आसानी से स्विच किया जा सकता है। (मैं एक मैक उपयोगकर्ता हूँ)। अपने प्लेटफ़ॉर्म के लिए Macports के विकल्प देखें।


0

जब तक एक पुल को 3.x के भीतर आंतरिक रूप से विकसित नहीं किया जाता है, 2.7 संकुल के पारदर्शी उपयोग की अनुमति देने के लिए एक चाल को जोखिम के साथ भरा जाता है क्योंकि भाषा वास्तव में इस बारे में सभी है कि इसमें क्या योगदान दिया गया है। औपचारिक विचार और पवित्रता तुलना में नगण्य हैं। इस तरह के एक पारदर्शी पुल उपयोगकर्ता आधार के लिए सरासर पांडित्यपूर्ण हठ और अवहेलना से बाहर होने की संभावना नहीं है।


ऐसा पारदर्शी पुल अप्राप्य है। 2to3 और छह पैकेज पर्याप्त ब्रिजिंग प्रदान करते हैं, लेकिन पारदर्शी से बहुत दूर हैं।
Martijn Pieters
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.