लोग पायथन 3 का उपयोग करने में संकोच क्यों करते हैं?


220

अजगर 3 दिसंबर 2008 में जारी किया गया था। तब से बहुत समय बीत चुका है, लेकिन आज भी कई डेवलपर्स पायथन का उपयोग करने में संकोच करते हैं। यहां तक ​​कि Django जैसे लोकप्रिय ढांचे भी पायथन 3 के साथ संगत नहीं हैं, लेकिन फिर भी पायथन 2 पर भरोसा करते हैं।

ज़रूर, पायथन 3 में पायथन 2 के साथ कुछ असंगतताएं हैं और कुछ लोगों को बैकवर्ड-संगतता पर भरोसा करने की आवश्यकता है। लेकिन पायथन 3 अधिकांश परियोजनाओं के लिए पायथन 3 के साथ स्विच करने या शुरू करने के लिए काफी लंबा नहीं है?

दो प्रतिस्पर्धी संस्करणों के पास बहुत सारी कमियां हैं; दो शाखाओं को बनाए रखने की जरूरत है, शिक्षार्थियों के लिए भ्रम और इतने पर। तो पायथन 3 पर स्विच करने के बारे में पायथन समुदाय में इतनी हिचकिचाहट क्यों है?


3
क्या वास्तव में इतने सारे नए प्रोजेक्ट्स पायथन 2 का उपयोग शुरू कर रहे हैं? या यह सिर्फ Django जैसी लंबी-स्थापित परियोजनाएं हैं?
कार्सन 63000

3
क्या आप कुछ चर्चाओं / स्रोतों का हवाला दे सकते हैं?
माइकल ईस्टर

12
@ माइकल ईस्टर - उसके पास नहीं है। बस SO पर अजगर टैग की जाँच करें; बहुत सारे लोगों की राय है कि "2.x सीखें, 3.x अभी तैयार नहीं है"।
रुके

5
क्या आपने शेम के पायथन 3 वॉल को नहीं देखा है ?
detly

जवाबों:


248

ध्यान दें कि मैं अब इस उत्तर को अपडेट नहीं कर रहा हूं। मेरे पास http://python-notes.curiousefficiency.org/en/latest/python3/questions_and_answers.html पर मेरी व्यक्तिगत साइट पर बहुत लंबा अजगर 3 क्यू एंड ए है।

पिछला उत्तर:

(स्थिति अपडेट, सितंबर 2012)

हम (यानी पायथन कोर डेवलपर्स) ने भविष्यवाणी की थी जब पायथन 3.0 जारी किया गया था कि 2.x श्रृंखला में नई परियोजनाओं के लिए "डिफ़ॉल्ट" विकल्प बनने में 3.x के लिए लगभग 5 साल लगेंगे। यह भविष्यवाणी है कि 2.7 रिलीज के लिए नियोजित रखरखाव की अवधि इतनी लंबी क्यों है।

मूल पायथन 3.0 रिलीज़ भी खराब आईओ प्रदर्शन के साथ कुछ महत्वपूर्ण मुद्दों को लेकर निकला जो इसे सबसे व्यावहारिक उद्देश्यों के लिए प्रभावी रूप से अनुपयोगी बनाता है, इसलिए यह जून 2009 के अंत में पायथन 3.1 की रिलीज़ से समयरेखा शुरू करने के लिए अधिक समझ में आता है। (उन IO प्रदर्शन की समस्याएं भी यही कारण हैं कि कोई 3.0.z अनुरक्षण रिलीज नहीं हैं: कोई भी अच्छा कारण नहीं है कि कोई भी 3.0 के उन्नयन पर 3.1 के साथ रहना चाहता है)।

लेखन के समय (सितंबर 2012), इसका मतलब है कि वर्तमान में हम संक्रमण प्रक्रिया में 3 साल से अधिक हैं, और यह भविष्यवाणी अभी भी ट्रैक पर है।

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

व्यवहार में सबसे बड़ी समस्या वास्तव में एक अर्थपूर्ण है: पायथन 3 आपको पाठ को तेज और ढीले खेलने की अनुमति नहीं देता है जिस तरह से पायथन 2 करता है। आप के लिए है: यह अजगर 2 पर अपनी सबसे बड़ा लाभ, लेकिन यह भी पोर्टिंग के लिए सबसे बड़ी बाधा दोनों है ठीक (जबकि 2.x में, कि कोड का एक बहुत चुपचाप साथ गलत डेटा का उत्पादन सही ढंग से काम करने के लिए एक बंदरगाह पाने के लिए अपनी समस्याओं से निपटने को यूनिकोड गैर-एएससीआईआई इनपुट, काम करने का आभास देता है, विशेष रूप से ऐसे वातावरण में जहां गैर-एएससीआईआई डेटा असामान्य है)।

यहां तक ​​कि पायथन 3.0 और 3.1 में मानक पुस्तकालय में अभी भी यूनिकोड से संबंधित समस्याएं हैं, जिससे बहुत सारे पुस्तकालयों (विशेषकर वेब सेवाओं से संबंधित) को पोर्ट करना मुश्किल हो जाता है।

3.2 उन समस्याओं का एक बहुत कुछ संबोधित किया, जो पुस्तकालयों और Django जैसे ढांचे के लिए बहुत बेहतर लक्ष्य प्रदान करता है। 3.2 ने wsgiref3.x के लिए पहले कार्यशील संस्करण (वेब सर्वर और पायथन में लिखे वेब एप्लिकेशन के बीच संचार के लिए उपयोग किया जाने वाला मुख्य मानक) को भी लाया , जो वेब स्पेस में अपनाने के लिए एक आवश्यक शर्त थी।

NumPy और SciPy जैसी प्रमुख निर्भरताएँ अब पोर्ट की गई हैं, स्थापना और निर्भरता प्रबंधन उपकरण जैसे zc.buildout, pipऔर virtualenv3.x के लिए उपलब्ध हैं, पिरामिड 1.3 रिलीज़ पाइथन 3.2 का समर्थन करता है, आगामी Django 1.5 रिलीज़ में प्रायोगिक पायथन 3 समर्थन और 12.0 रिलीज़ शामिल है पायथन 3 संगत संस्करण बनाने का मार्ग प्रशस्त करने के लिए ट्विस्टेड नेटवर्किंग फ्रेमवर्क ने पायथन 2.5 का समर्थन छोड़ दिया।

पायथन 3 संगतता पुस्तकालयों और चौखटे पर प्रगति के अलावा, लोकप्रिय JIT- संकलित PyPy दुभाषिया कार्यान्वयन सक्रिय रूप से पायथन 3 समर्थन पर काम कर रहा है।

प्रवासन प्रक्रिया के प्रबंधन के लिए उपकरणों में भी उल्लेखनीय सुधार हुआ है। 2to3CPython के भाग के रूप में प्रदान किए गए टूल के अलावा (जो अब अनुप्रयोगों के वन-टाइम रूपांतरण के लिए सबसे उपयुक्त माना जाता है, जिसे 2.x श्रृंखला के लिए समर्थन बनाए रखने की आवश्यकता नहीं है), वहाँ भी है python-modernize, जो 2to3लक्ष्यीकरण के लिए बुनियादी ढांचे का उपयोग करता है Python 2 और Python 3. का सामान्य (सबसे बड़ा) आम उपसमूह 3. यह उपकरण एक एकल कोड आधार बनाता है जो sixअनुकूलता पुस्तकालय की सहायता से Python 2.6+ और Python 3.2+ दोनों पर चलेगा । पायथन 3.3 रिलीज भी "शोर" के एक प्रमुख कारण को समाप्त करता है जब मौजूदा यूनिकोड जागरूक अनुप्रयोगों को माइग्रेट करता है: पायथॉन 3.3 एक बार फिर स्ट्रिंग लीटर के लिए 'यू' उपसर्ग का समर्थन करता है (यह वास्तव में नहीं करता हैपायथन 3 में कुछ भी - यह केवल उन उपयोगकर्ताओं के लिए अनजाने में बचने से बचने के लिए बहाल किया गया है जो उन उपयोगकर्ताओं के लिए कठिन हैं, जिन्होंने पायथन 2 में पहले से ही अपने पाठ और द्विआधारी शाब्दिक रूप से सही पहचान की थी)।

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

चूंकि बहुत सारी परियोजनाएं अपने पायथन पैकेज इंडेक्स मेटाडेटा को ठीक से क्यूरेट नहीं करती हैं, और कम सक्रिय रख-रखाव वाली कुछ परियोजनाओं को पायथन 3 समर्थन को जोड़ने के लिए त्याग दिया गया है, विशुद्ध रूप से स्वचालित PyPI स्कैनर अभी भी पायथन 3 लाइब्रेरी की स्थिति के बारे में एक नकारात्मक दृष्टिकोण देते हैं। समर्थन।

PyPI पर पायथन 3 समर्थन के स्तर पर जानकारी प्राप्त करने के लिए एक पसंदीदा विकल्प http://py3ksupport.appspot.com/ है।

यह सूची व्यक्तिगत रूप से ब्रेट तोप (एक लंबे समय के पायथन कोर डेवलपर) द्वारा गलत प्रोजेक्ट मेटाडेटा के लिए बनाई गई है, पायथन 3 समर्थन जो स्रोत नियंत्रण उपकरण में है, लेकिन आधिकारिक रिलीज में अभी तक नहीं है, और परियोजनाएं जो कांटे की तारीख तक अधिक हैं। या विकल्प जो पायथन 3 का समर्थन करते हैं। कई मामलों में, जो लाइब्रेरी अभी तक पायथन 3 पर उपलब्ध नहीं हैं, वे महत्वपूर्ण निर्भरताएं गायब कर रहे हैं और / या अन्य परियोजनाओं में पायथन 3 समर्थन की कमी उपयोगकर्ता की मांग को कम करती है (जैसे कि एक बार कोर Django फ्रेमवर्क उपलब्ध है। अजगर 3, संबंधित उपकरण जैसे दक्षिण और डीजेंगो-अजवाइन में पायथन 3 समर्थन को जोड़ने की अधिक संभावना है, और पिरामिड और Django दोनों में पायथन 3 समर्थन की उपलब्धता से यह अधिक संभावना है कि पायथन 3 समर्थन को अन्य उपकरणों जैसे कि जीईईवेंट में लागू किया जाएगा)।

Http://getpython3.com/ की साइट में पायथन 3 के लिए पुस्तकों और अन्य संसाधनों के कुछ उत्कृष्ट लिंक शामिल हैं, कुछ प्रमुख पुस्तकालयों और रूपरेखाओं की पहचान करता है जो पहले से ही पायथन 3 का समर्थन करते हैं, और यह भी कुछ जानकारी प्रदान करते हैं कि डेवलपर्स कैसे वित्तीय सहायता प्राप्त कर सकते हैं। पायथन 3 में प्रमुख परियोजनाओं को पोर्ट करने में पीएसएफ।

एक और अच्छा संसाधन एक नए प्रोजेक्ट के लिए पायथन संस्करण चुनने पर विचार करने के लिए कारकों पर समुदाय विकी पृष्ठ है: http://wiki.python.org/moin/Python2orPython3


3
पिछले 18 महीनों में प्रगति के आधार पर अपडेट किया गया (और स्पष्ट रूप से इस तथ्य पर ध्यान दिया गया कि 3.1 पहली वास्तविक उत्पादन-व्यवहार्य थी। 3. 3.0 में
अबीसैल

1
एक हद तक (यानी हमें पता था कि यह 2.6 में io सबसिस्टम की तुलना में काफी धीमा था), लेकिन सामान्य प्रयोज्य पर प्रभाव हमारे अनुमान से कहीं अधिक खराब था (हमारे आईओ बेंचमार्क तब से स्पष्ट रूप से बेहतर हुए हैं, इसलिए ऐसा होने का कोई मौका नहीं है) आज भेज दिया गया)
ncoghlan

6
2015 में प्रस्तावित समय सीमा इतनी उत्साहजनक नहीं लगती है: |
zetah

1
जिस तरह से मैं इसे देखता हूं (और मैं इसके लिए कुछ द्वारा दांव पर जला दिया जाएगा) यह है कि एन्कोडिंग के मोर्चे पर, Py3 ने उल्लंघन किया (और अभी भी करता है, जैसा कि यह चीजें जाती हैं) "व्यावहारिकता धड़कता है" में पायथन का ज़ेन पवित्रता को दर्शाता है। : Py3 एन्कोडिंग-शुद्ध है। Py2 एन्कोडिंग-व्यावहारिक था।
जुरगेन ए। इरहाद

2
Py3 अभी भी एन्कोडिंग के बारे में व्यावहारिक है (अन्यथा हमारे पास सरोगेटस्केप नहीं होगा), हम अभी बहुत से * nix उपयोगकर्ताओं का सामना करते हैं जो Windows, .NET और JVM जैसे प्लेटफार्मों पर ऑपरेटिंग सिस्टम इंटरफेस के काम करने के तरीके के बारे में सुनने में रुचि नहीं रखते हैं। Android सहित)। मैंने उस पर अधिक लिखा है developerblog.redhat.com/2014/09/09/… पर मुख्य प्रभाव "त्रुटियों को चुपचाप पास नहीं होना चाहिए" सामने है, क्योंकि हमने डेटा निर्भर बग को बदल दिया है जो संरचनात्मक प्रकार की त्रुटियों में मोजिबेक का उत्पादन करते हैं। बाइनरी डेटा और टेक्स्ट डेटा को मिक्स करने की शिकायत।
ncoghlan

48

मेरा मानना ​​है कि बहुत सी हिचकिचाहट दो चीजों से होती है:

  • यदि यह टूटा नहीं है, तो इसे ठीक न करें
  • [XYZ लाइब्रेरी] हमारे पास 3.0 पोर्ट की आवश्यकता नहीं है

इस दस्तावेज़ में बताई गई मुख्य भाषा के व्यवहार के तरीके में काफी अंतर हैं । उदाहरण के लिए, एक बयान से "प्रिंट" को बदलने के रूप में सरल कुछ, बहुत सारे पायथन को तोड़ देगा 2.x कोड - और यह केवल सबसे सरल है। उन्हें 3.0 में पूरी तरह से पुरानी शैली की कक्षाओं से छुटकारा मिल गया। वे वास्तव में, काफी अलग भाषाएं हैं - इसलिए पुराने कोड को पोर्ट करना उतना सरल नहीं है जितना कि कुछ लोग मान सकते हैं।


2
निर्भरता-नहीं-एक-पोर्ट समस्या पुनरावर्ती है, साथ ही। क्या जरूरत है व्यापक रूप से उपयोग किए जाने वाले पुस्तकालयों के लिए, जिनके पास बंदरगाह के बाहर कुछ या कोई निर्भरता नहीं है, जो तब एक चेन रिएक्शन शुरू कर सकते हैं।
टोनी मेयर

10
मैं ऑर्डर स्विच करूंगा। हम में से बहुत से लोग आसपास हैं, एक विशेष पैकेज के लिए माइग्रेट करने के लिए इंतजार कर रहे हैं 3.
S.Lott

1
@ टोनी - इसलिए मुझे लगता है कि यह 3.0 के लिए एक बड़ा वरदान है कि नम्पी अब इसके लिए उपलब्ध है। @ एस.लॉट - मुझे लगता है कि यह वास्तव में इस बात पर निर्भर करता है कि 3 आपको कुछ देना चाहता है। सच कहूं तो, मैं केवल हाल ही में 2.5 से 2.7 तक चला गया - इसलिए मैं वास्तव में उन लोगों में से नहीं हूं जो "नवीनतम और महानतम" का अनुसरण करते हैं।
TZHX

1
पुराने कोड की सहायता से पोर्ट करना 2to3उतना कठिन नहीं है, जितना कि कुछ लोग डरते हैं, हालांकि।
ncoghlan

5
यह मदद नहीं करता है कि बस हर उस ओएस के बारे में जो डिस्ट्रो (OSX, Linux, आदि) में पायथन को बंडल करता है, अभी भी पायथन 2 के कुछ प्राचीन संस्करण पर अटका हुआ है। पायथन 3 के लिए क्यों लिखें जब कोई भी आपके कोड का उपयोग muck के बिना नहीं कर सकता है उनके ओएस के आंतरिक के साथ?
एंट

28

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

पोस्ट माइग्रेशन के अलावा यह सुनिश्चित करना कि कोई प्रतिगमन विफलताएं नहीं हैं और यह सब सिरदर्द में अपरिहार्य है।

नई परियोजनाओं के लिए नीति सरल और सरल है, यह सभी निम्नलिखित बिंदुओं पर शुरू होती है:

  1. क्या उनके डिफॉल्ट इंस्टॉलेशन में उबंटू जहाज पायथन 3 जैसा कोई डिस्ट्रो है?
  2. पाइथन 3 के लिए लाइब्रेरी इकोसिस्टम क्या है।
  3. क्या सभी चौखटे एट अल पायथन 3. आदि के साथ संगत हैं।

इसकी अपनी सामान्य 'एक नई भाषा चुनने की प्रक्रिया'। यह वह जगह है जहां चिकन-अंडे की समस्या आती है, बहुत से लोग इसका उपयोग नहीं कर रहे हैं क्योंकि बहुत से लोग इसका उपयोग नहीं कर रहे हैं। अंतत: किसी को भी यह महसूस करने का मन नहीं करता है।

पीछे की ओर संगतता को तोड़ना कभी भी अच्छी बात नहीं रही है, इसके अंत में आप हमेशा उपयोगकर्ताओं का एक अच्छा प्रतिशत समाप्त करते हैं।


14

जब पाइथन 2.0 रिलीज़ हुई, उस समय पाइथन तेजी से लोकप्रियता में बढ़ रहा था। बहुत सारे नए उपयोगकर्ता थे जो स्वाभाविक रूप से नवीनतम संस्करण का उपयोग करते थे, क्योंकि पुराने संस्करणों पर उनकी कोई निर्भरता नहीं थी। डिफ़ॉल्ट रूप से 2.0 को अपनाने वाले बहुत से लोगों के साथ, पुस्तकालय डेवलपर्स आदि पर बहुत दबाव था।

जब तक पायथन 3.0 जारी किया गया था, तब तक पहले से ही पायथन 2.0 पर निर्भर उपयोगकर्ताओं की एक बड़ी संख्या थी, और घातीय वृद्धि (मौजूदा उपयोगकर्ताओं के सापेक्ष एक स्थिर कारक रखते हुए) स्पष्ट रूप से अनिश्चित काल तक कायम नहीं रह सकती है।

व्यक्तिगत रूप से, पायथन 2 दिनों में वापस नई सुविधाएँ पायथन 3 द्वारा प्रदान किए गए लोगों की तुलना में बहुत अधिक आकर्षक लग रही थीं।

मुझे लगता था कि पायथन 3 अंततः किसी भी तरह से ले जाएगा, लेकिन मुझे अब यकीन नहीं है। लेकिन यह सिर्फ पायथन नहीं है जिसमें यह मुद्दा है। आखिर कितने लोग ईमानदारी से पर्ल 6 का इस्तेमाल करते हैं? यह पायथन 3, IIRC की तुलना में अधिक लंबा है।


3
नरक, मैं अभी भी फोरट्रान77 का उपयोग कर रहा हूं। :) और पायथन 3 से अधिकांश वास्तविक "सुविधाओं" को कई संगतता मुद्दों के बिना 2.6 और 2.7 में वापस भेज दिया गया है। एकमात्र चीज़ पायथन 3 वास्तव में "क्लीनर" सिंटेक्स है।
TZHX

3
पायथन 3 और पर्ल 6 की तुलना करना गलत है। पायथन 3 पायथन 2 से एक वृद्धिशील कूद है, जबकि पर्ल 6 एक कुल जमीन का नया स्वरूप है। पर्ल 5 और पर्ल 6 बहन भाषाएं हैं और लंबे समय तक अस्तित्व में रहेंगी। दूसरी ओर, पायथन 3 में पायथन 2 को बदलने की योजना है, न कि केवल सह अस्तित्व में है। यह एक बड़ा अंतर है।
कमल

1
पर्ल 6 अभी भी विकास के अधीन है। हां, राकोडो पर्ल पर्ल 6 विनिर्देश के निकटतम कार्यान्वयन है, लेकिन अभी तक सब कुछ लागू नहीं करता है। अभी तक कोई उत्पादन तैयार नहीं है पर्ल 6 कार्यान्वयन अभी तक।
हतबा

1
@Htbaa संपूर्णता और तत्परता की कई परिभाषाओं के लिए। पर्ल 6 पूर्ण और उत्पादन तैयार है। बात यह है कि पूर्ण कल्पना से मेल खाने में कुछ समय लग सकता है, अन्य भाषाओं के साथ भी ऐसी ही चीजें हैं। उदाहरण के लिए जीसीसी यहां तक ​​कि हाल ही में वास्तव में पूरे सी ++ विनिर्देश से मेल नहीं खाता। भाषा डिजाइन और कार्यान्वयन एक बहुत ही धीमी प्रक्रिया है।
कमल

1
rakudo.org/node/75 राकूडो स्टार को लंबे समय पहले रिलीज़ किया गया था। आपको इसे आजमाने की जरूरत है।
कमल

11

मेरे लिए एक बड़ा शो स्टॉपर, जो मुझे नहीं लगता कि स्वचालित अनुवाद द्वारा संबोधित किया जा सकता है, पूर्णांक विभाजन है। मेरे पास वैज्ञानिक कोड हैं जो x / 2 पर भरोसा करते हैं और एक्स को गोल करते हैं (जब x पूर्णांक होता है)।

अजगर 3 ऐसा नहीं करेगा, लेकिन एक .5 उत्तर (विषम x के लिए) देगा।
मैं // के साथ अपने कोड में सभी को प्रतिस्थापित नहीं कर सकता / सकती क्योंकि कभी-कभी मैं फ्लोट डिवीजन करता हूं, और इसलिए फ्लोट व्यवहार करना चाहता हूं।

इसलिए, मेरे लिए पायथन 3 को पोर्ट करने के लिए, मुझे दसियों हज़ारों लाइनों के माध्यम से ट्रॉल करना होगा, हर जाँच / और अगर मैं यह पता लगा सकता हूं कि क्या यह / या // होना चाहिए।


7
"-Q" विकल्प (2.7 करने के लिए 2.2) विभाजन के लिए चेतावनी बढ़ा सकते हैं। इसके अलावा, fixdiv.py अपनी स्क्रिप्ट में भाव अद्यतन करने के लिए इन चेतावनियों का उपयोग करता है।
एरिक सन

10

पायथन 3 एक नई परियोजना शुरू करने के लिए अच्छा है यदि आपके लिए आवश्यक सभी पुस्तकालयों को पहले से ही Py3k में पोर्ट किया गया है।

यदि यह विकल्प नहीं है, तो Python 2.7 का उपयोग करना दोनों दुनिया के लिए सबसे अच्छा है: आपके पास Python 2.x के लिए बनाई गई प्रत्येक लाइब्रेरी है और आप धीरे-धीरे अपने कोड को Py3k- संगत होने के लिए बदल सकते हैं, ताकि जब आप निर्णय लें तो प्रवास आसान हो यह। आप पहले से ही 2.7 में है Py3k से वाक्यविन्यास उपहार की सूची लंबी है, बस से आयात करने के लिए मत भूलना __future__। मेरा पसंदीदा डिफ़ॉल्ट रूप से यूनिकोड है और हमेशा एक फ्लोट का निर्माण होता है।


10

वेब सेवाओं के परिप्रेक्ष्य से: कोई भी प्रमुख सर्वर फ्रेमवर्क और न ही वेब फ्रेमवर्क Python3 का समर्थन करते हैं।

अद्यतन: जाहिर है कि 2011 की शुरुआत में, अब तक (2013 के अंत में), अधिकांश प्रमुख रूपरेखा Python3 के साथ काम कर रही हैं। हालांकि कुछ अभी भी संगत नहीं हैं। महत्वपूर्ण उदाहरण ट्विस्टेड होगा, जहां यह अभी भी प्रगति पर है


BTW, Django ने अभी हाल ही में v 1.5 में Python3 को प्रयोगात्मक रूप से समर्थन देना शुरू किया है।
9000

1
Django 1.6 अब आधिकारिक रूप से पायथन 3. का समर्थन करता है। फ्लास्क भी इसका समर्थन करता है।
19

8

जब तक आप भारी i18n काम नहीं कर रहे हैं, तब तक P3K का उपयोग करने के लिए कोई बाध्यकारी कारण नहीं हैं। मेरे फोर्सेस में, मैंने अपने कोड को रोकने के लिए मेरे (ASCII) काम और अनिवार्य जनरेटर के लिए बाधा यूनिकोड पाया है।

कुछ वर्षों में, 3 अधिक सम्मोहक वातावरण प्रस्तुत करेगा, लेकिन, आज नहीं।


4

वितरण Python3 को उपलब्ध नहीं कराते हैं। कुछ फ्रिंज डिस्ट्रोस हैं जो पहले से ही पायथन 2 से संक्रमण करते हैं। लेकिन मुख्यधारा लिनक्स वेरिएंट जैसे डेबियन, उबंटू आदि नहीं। मेरे लिए आवेदन लेखक के रूप में या तो ऐसा न करने का मुख्य कारण है।

यद्यपि मैंने संक्रमण तैयार किया और यहां तक ​​कि सिंटैक्स निर्माणों से बचने की कोशिश की जो असंगत हैं , मैं इसे ठीक से परीक्षण नहीं कर सकता। यह वास्तव में चिकन और अंडे की समस्या को उबालता है।


4
यह एक बार सच हो सकता है, लेकिन "apt-get install python3" और "yum install python3" दोनों ने लंबे समय तक काम किया है। टॉक्सिंग और शाइनिंग पांडा सीआई जैसी सेवाएं कई पायथन संस्करणों में परीक्षण करने के लिए इसे कठिन बनाती हैं।
ncoghlan

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