Python2 के लिए Python3 कोड रूपांतरण के लिए, Python & Django का कौन सा संस्करण सबसे उपयुक्त है?


11

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

वर्तमान में मैं अपने पुराने संस्करण में पायथन: 2.7.16 और Django: 1.9.13 का उपयोग कर रहा हूं।

कोई भी मुझे python2 से python3 रूपांतरण के लिए पुराने संस्करण के लिए पायथन और Django के सर्वश्रेष्ठ अनुकूल संस्करण का सुझाव दे सकता है।


Python3 का वर्तमान संस्करण Python 3.8 है, और Django का नवीनतम संस्करण Django 3.0 है। Django की वेबसाइट ने पायथन 3 के नवीनतम संस्करण की सिफारिश की है , जो 3.8 है। क्या कोई विशेष कारण है कि आप अपने सबसे हाल के संस्करणों में अजगर और डीजेंगो दोनों को तेज नहीं करना चाहते हैं?
ग्रीन क्लोक गाइ

2
वास्तविक रूप से, मुझे केवल कुछ दिनों पहले एहसास हुआ कि Django- आधारित वेबसाइट जिसे मैं कुछ वर्षों से बनाए रख रहा हूं, वास्तव में सर्वर पर चलता है जिसे python2.7 का उपयोग करके होस्ट किया गया है, जबकि मैं इसे python3 का उपयोग करके स्थानीय रूप से चला रहा हूं। 7। एकमात्र अंतर मुझे तब मिला जब मैंने पहली बार कहीं एफ-स्ट्रिंग्स का उपयोग करने की कोशिश की और वेबसर्वर का संस्करण दुर्घटनाग्रस्त हो गया; अन्यथा यह स्थानीय और दूरस्थ रूप से अपेक्षित (बिल्कुल वैसा ही) चल रहा है, परीक्षण और सुविधा के प्रयोजनों के लिए। मेरा पूरी तरह से महत्वपूर्ण निष्कर्ष यह है कि Django आमतौर पर ज्यादातर चीजों के साथ संगत है।
ग्रीन क्लोक गाइ

1
नवीनतम संस्करण के लिए, मैंने पाया है कि कुछ लोग अनुशंसा नहीं करते हैं क्योंकि नवीनतम संस्करण में यदि कोई समस्या संबंधित नए अपडेट हैं, तो कभी-कभी समाधान खोजना मुश्किल होगा, इसलिए वर्तमान परियोजना में मैं इस तरह का जोखिम नहीं चाहता हूं और इसके लिए भी परीक्षण purspose, मैंने अपने प्रोजेक्ट को नवीनतम django के साथ 3.7.3 नवीनतम संस्करण अजगर में बदलना शुरू कर दिया है और पहले से ही 30 तरह के मुद्दों को ढूंढ लिया है।
चंद्रमा

यह ध्यान दिया जाना चाहिए - यह प्रश्न मेरे लिए एक समीक्षा लेखा परीक्षा में आया था। "क्या कोई दस्तावेज या संदर्भ है" बहुत स्पष्ट रूप से ऑफ-टॉपिक (ऑफ-साइट संसाधन के लिए पूछ रहा है)। हालाँकि, मेरा मानना ​​है कि प्रश्न को इस तरह संपादित किया जा सकता है कि यह नीचे दिए गए स्वीकृत उत्तर को बेहतर तरीके से ले सके।
theMayer

जवाबों:


3

मुझे लगा कि मैं Wim के उत्तर की वकालत की गई रणनीति में थोड़ा सा जोड़ दूंगा - 2.7 और 3.x दोनों पर काम कर रहे Django के उपयुक्त संस्करण को प्राप्त करें - और मेरे लिए काम करने वाली कुछ युक्तियों को रेखांकित करें।

पाइथन 2.7 आपकी एस्केप पॉड है, जब तक आप 3.x पर ट्रिगर खींचते हैं

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

Django के किस मामूली संस्करण के साथ शुरू करने के लिए?

यहां मेरा मानदंड यह है कि Django माइग्रेशन में काफी शामिल हो सकता है (और वास्तव में 2 => 3 काम की तुलना में अधिक सोच की आवश्यकता होती है)। इसलिए मैं इस तरह से नवीनतम और सबसे बड़ा 1.11 पर जाऊंगा कि आप पहले से ही अपने 2.7 उपयोगकर्ताओं को कुछ मूल्य प्रदान कर रहे हैं। प्री-2.x संगतता की अच्छी संख्या शायद 1.11 पर है और आपको इसकी 2.x डेप्रिसिएशन चेतावनी मिल रही है।

पायथन 3.x के किस लघु संस्करण को शुरू करना है?

सभी कोणों पर विचार करने के लिए सबसे अच्छा, जैसे कि आपकी 3 पार्टी की लिबास की उपलब्धता, आपके सीआई / डेपॉप्स सुइट से समर्थन और आपके चुने हुए सर्वर ओएस छवियों पर उपलब्धता। आप हमेशा 3.8 स्थापित कर सकते हैं और उदाहरण के लिए, अपनी आवश्यकताओं के पाइप को स्थापित कर सकते हैं।

उत्तोलन गिट (या जो भी scm आप उपयोग करते हैं) और virtualenv

  • अलग requirement.txtफाइलें, लेकिन ...
  • यदि आपके पास एक फ़ाइल-आधारित, गिट रेपो है, तो आप एक ही कोडलाइन पर प्रत्येक वेनव को एक के साथ इंगित कर सकते हैं pip install -e <your directory>। इसका मतलब है कि, 2 अलग-अलग टर्मिनलों में आप 2.7 और 3.x को एक ही unittest (s) के खिलाफ चला सकते हैं।
  • आप 2.7 और 3.x Django सर्वर भी अलग-अलग पोर्ट पर साइड-बाय-साइड चला सकते हैं और पॉइंट फ़ायरफ़ॉक्स और क्रोम को उन पर कह सकते हैं।
  • अक्सर (पोर्टिंग शाखा पर कम से कम) और जीआईटी बिसेक्ट के बारे में जानें ।

2to3 का उपयोग करें

यदि आप इसे करते हैं तो हाँ, यह 2.7 कोड और Django को तोड़ देगा। इसलिए...

  • इसे पूर्वावलोकन मोड में या किसी एकल फ़ाइल के विरुद्ध चलाएं। देखें कि यह क्या टूटता है लेकिन यह भी देखें कि इसने क्या किया।

  • इसे केवल कुछ रूपांतरणों पर थ्रॉटल करें जो 2.7 या Django को नहीं तोड़ते हैं। print x=> print (x)और except(Exception) as e2 बिना दिमाग वाले हैं।

यह मेरा गला घोंटा हुआ कमान जैसा दिखता था:

2to3 $tgt -w -f except -f raise -f next -f funcattrs -f print
  • जब तक आप वास्तव में आश्वस्त नहीं हैं तब तक इसे फ़ाइल-दर-फ़ाइल चलाएं।

बल्क रूपांतरणों के लिए अपने संपादक के बजाय sed या awk का उपयोग करें ।

लाभ यह है कि, जैसा कि आप अपने ऐप्स की विशिष्ट चिंताओं के बारे में अधिक जागरूक हो जाते हैं, आप उन परिवर्तनों का एक सूट बना सकते हैं जो 1 फ़ाइल या कई फ़ाइलों पर चलाए जा सकते हैं और 2.7 या Django को तोड़े बिना अधिकांश काम करते हैं। अपने उपयुक्त-थ्रोटल 2to3 पास के बाद इसे लागू करें । यह आपको अपने संपादक में अवशिष्ट क्लीनअप के साथ छोड़ देता है और आपके परीक्षणों को पास करने के लिए मिलता है।

(वैकल्पिक) 2.7 कोड पर काला चलना शुरू करते हैं ।

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

अन्य लोगों ने किया है - उनसे सीखें।

पायथन 3 में जाने के लिए # 155 व्यावहारिक चरणों को सुनकर आपको काम के कुछ विचार देने चाहिए। इसके लिए शो लिंक देखें। वे इंस्टाग्राम (?) कदम पर बात करना पसंद करते हैं, जिसमें एक सामान्य कोडबेस पर 2.7 कोड से 3.x सिंटैक्स तक चलने का क्रमिक समायोजन शामिल था, और एक ही गिट शाखा पर, जब तक ट्रिगर-डे-ट्रिगर नहीं होता।

कंजर्वेटिव पायथन 3 पोर्टिंग गाइड भी देखें

और इंस्टाग्राम ने पायथन 3 - द न्यू स्टैक के लिए एक स्मूथ मूव बनाया

निष्कर्ष

Django 1.11 EOL (अप्रैल 2020) के लिए आपका समय कम है, इसलिए यदि आपके पास इसे फेंकने के लिए 2+ देव संसाधन हैं, तो मैं निम्नलिखित पर विचार करूंगा:

  • DEV # 1: एक Django 1.11 बम्प पर शुरू होता है (सिद्धांत है कि Django 1.11 शायद सबसे अच्छी तरह से Django 2.x के लिए एक जंप बंद बिंदु के रूप में तैनात है), 2.7 का उपयोग कर।

  • DEV # 2: अपने गैर-Django उपयोगिता कोड के पायथन 3.6 / 3.7 पर आरंभ करें। चूंकि इस बिंदु पर कोड 2.7 संगत है, इसलिए इसे # 1 में मर्ज कर दें।

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

आपकी प्रारंभिक 2to3 प्रगति धीमी होगी, लेकिन टूलींग और मार्गदर्शन काफी अच्छा है कि आप जल्दी से गति प्राप्त करेंगे ताकि अनुभव इकट्ठा करना शुरू करने से पहले इसे खत्म न करें। Django पक्ष रूपरेखा में परिवर्तन को तोड़ने के लिए आपके संपर्क पर निर्भर करता है, यही कारण है कि मुझे लगता है कि जल्दी शुरू करना सबसे अच्छा है।

PS (विवादास्पद / व्यक्तिगत राय) मैंने छह या अन्य डिब्बाबंद 2-से-3 ब्रिज पुस्तकालयों का ज्यादा इस्तेमाल नहीं किया।

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

इसके बजाय, मैंने इस प्रकार की सामग्री के साथ एक py223.py (57 LOC incl। टिप्पणियाँ) बनाईं , जिनमें से अधिकांश का संबंध डिपॉजिटेशन के लिए वर्कअराउंड और मानक लाइब्रेरी में नाम परिवर्तन से है।

try:
    basestring_ = basestring
except (NameError,) as e:
    basestring_ = str

try:
    cmp_ = cmp
except (NameError,) as e:
    # from http://portingguide.readthedocs.io/en/latest/comparisons.html
    def cmp_(x, y):
        """
        Replacement for built-in function cmp that was removed in Python 3
        """
        return (x > y) - (x < y)

फिर उन विशिष्ट चिंताओं के आसपास काम करने के लिए उस py223 से आयात करें। बाद में मैं बस आयात को खोदूंगा और उन अजीबों isinstance(x, basestr_)को आगे बढ़ाऊंगा isinstance(x, str)लेकिन मुझे पहले से पता है कि चिंता करने की कोई बात नहीं है।


अच्छी सलाह। सिर्फ एक नोट, Django ही sixसंगतता परत के लिए पहले से ही उपयोग करता है , इसलिए यदि आप इसे संक्रमण के दौरान एक Django परियोजना में उपयोग करना चाहते हैं, तो यह "एक जटिल स्थायी निर्भरता जोड़ना" नहीं है।
विम

@wim। मैं आपसे फिर से सहमत हूं। छह, लेकिन यह दृष्टिकोण पर निर्भर करता है। मैंने पहले ही नोट कर लिया है कि यह तीसरे पक्ष के कामों के साथ आता है, इसलिए यह आवश्यकताओं और समग्र निर्भरता के मामले में "लागत" नहीं करता है। हालाँकि, मैं - शायद गलत तरीके से - यह मेरे कोड के बीच में एक बड़ा ब्लैक बॉक्स / मस्सा माना जाता है । यदि आप सब कर रहे हैं तो परीक्षण उदाहरण स्ट्रिंग / यूनिकोड / बेसस्ट्रिंग जैसी चीजें हैं और यदि आप जानते हैं कि स्वयं को कैसे करना है, तो आप वास्तव में जानते हैं कि आपके शिम को कैसे वापस करना है जब उन्हें अब ज़रूरत नहीं है। मैं इसे अंत तक ले जाऊंगा, हालाँकि।
JL Peyret

यह pip install -e ...(कम मामले के साथ -e) है, है ना?
thebjorn

यह शायद है। सही होगा
JL Peyret

3

मेरा सुझाव पहले अपग्रेड करने के लिए है Django==1.11.26, जो कि Django का सबसे हालिया संस्करण है जो Python 2 और Python दोनों को सपोर्ट कर रहा है। 3. अब के लिए Python 2.7 के अपने वर्तमान संस्करण पर बने रहें।

1.10.x और 1.11.x के रिलीज़ नोट्स को ध्यान से पढ़ें, डिप्रेसेशन की जाँच करें और कुछ भी ठीक करें जो आपके 1.9.x कोड से काम करना बंद कर दे। चीजें टूटेंगी। Django तेजी से आगे बढ़ता है। एक बड़ी Django परियोजना के लिए, कई कोड परिवर्तनों की आवश्यकता हो सकती है, और यदि आप बहुत सारे तृतीय-पक्ष प्लगइन्स या पुस्तकालयों का उपयोग कर रहे हैं, तो आपको उनके संस्करणों को घेरना पड़ सकता है। आपकी 3-पार्टी निर्भरता में से कुछ को शायद पूरी तरह से छोड़ दिया गया है, इसलिए आपको प्रतिस्थापन ढूंढना होगा या सुविधाओं को निकालना होगा।

प्रत्येक संस्करण अपग्रेड के लिए रिलीज़ नोट्स खोजने के लिए, बस "Django में नया क्या है" Google। हिट सावधानीपूर्वक सभी अवक्षेपण और परिवर्तनों का दस्तावेज करेंगे:

एक बार जब webapp Django 1.11 पर ठीक से काम कर सभी परीक्षणों से गुजर के साथ, प्रतीत होता है (यदि आप करते हैं , सही टेस्ट स्वीट है?) तो आप Django संस्करण ही रखते हुए, जबकि, अजगर 3 रूपांतरण कर सकते हैं। Django 1.11 Python 3.7 तक का समर्थन करता है, इसलिए यह लक्ष्य के लिए एक अच्छा संस्करण होगा। सभी जगह यूनिकोड की अपेक्षा करें, क्योंकि बाइट्स और टेक्स्ट के बीच निहित रूपांतरण अब चला गया है और कई पायथन 2 वेबैप उस पर निर्भर हैं।

एक बार जब यह परियोजना Django 1.11 और Python 3.7 पर ठीक काम करती प्रतीत होती है, तो आप Django 3.0 में अपग्रेड करने के बारे में सोच सकते हैं, पहले की तरह ही प्रक्रिया का पालन करते हुए - रिलीज़ नोट्स को पढ़ना, आवश्यक बदलाव करना, टेस्ट सूट चलाना और जाँच करना। वेब सर्वर एक वेब सर्वर में मैन्युअल रूप से।


1
निश्चित रूप से जाने का रास्ता। 2.7 और 3.x दोनों पर चलने के लिए अपना परीक्षण कोड प्राप्त करें। आपके पास एक ही गिट रेपो में इंगित करने वाले 2 अलग-अलग वर्चुअन हो सकते हैं pip install -E। एक बार जब यूनिट परीक्षण चल रहे हों, तो Django-on-3x का परीक्षण उपयोग शुरू करें और फिर से 2 और 3 में कोड काम करते रहें। कुछ सावधानी से कोडिंग के साथ और अपने 2.7 पुलों को न जलाने के लिए सावधान रहें - उदाहरण के लिए कोई तार नहीं - स्विचओवर होगा बहुत रोगनाशक। एक बार 3.x पूरी तरह से स्थिर होने के बाद, 3.x केवल कोड का उपयोग करना शुरू करें। लाभ यह है कि स्विच करने तक 2.7 उत्पादन हमेशा चरण में होता है।
JL Peyret

2

मैं पहले py3 में अपग्रेड करूंगा। आपको यह देखने के setup.pyलिए स्थिर / 1.9.x शाखा ( https://github.com/django/django/blob/stable/1.9.x/setup.py ) पर Django रेपो में देखना होगा। समर्थित संस्करण 3.4 (मृत) और 3.5 हैं।

एक बार जब आप py3.5 और Django 1.9 पर होते हैं, तो आप एक बार में एक को अपग्रेड कर सकते हैं जब तक कि आप उस संस्करण तक नहीं पहुंच जाते जिसे आप समाप्त करना चाहते हैं। Eg Django 1.11 py3.5 और py3.7 का समर्थन करता है, इसलिए

py27/dj19 -> py35/dj19 -> py35/dj1.11 -> py37/dj1.11 ... -> py37/dj2.2

dj2.2 पहला संस्करण है जो py3.8 का समर्थन करता है, लेकिन मैं शायद py37 / dj2.2 पर रुक जाऊंगा यदि आप सामान्य रूप से रूढ़िवादी वातावरण में काम कर रहे हैं।

यदि आपके पास अन्य पैकेज हैं, तो आपको संस्करण संयोजनों को खोजने की आवश्यकता होगी जो प्रत्येक चरण पर एक साथ काम करेंगे। एक योजना का होना प्रमुख है, और एक समय में केवल एक घटक को अपग्रेड करना आमतौर पर आपके समय की बचत करेगा।

भविष्य की लाइब्रेरी ( https://python-future.org/ ) आपको कई विकट स्थितियों में मदद करेगी, जबकि आपको py27 और 3.x दोनों पर चलने के लिए कोड की आवश्यकता होगी। छह भी महान है। मैं आपकी खुद की संगतता परत (पहिया को फिर से मजबूत क्यों करूं) को रोल करने से बचूंगा?

यदि संभव हो, शुरू करने से पहले 75-85% तक अपनी इकाई परीक्षण कवरेज प्राप्त करने का प्रयास करें, और निश्चित रूप से प्रत्येक नवीनीकरण चरण के लिए "से" और "से" दोनों संस्करणों पर स्वत: परीक्षण स्थापित करें। सुनिश्चित करें कि आपने अगले संस्करण में अपग्रेड करने से पहले Django की सभी चेतावनियों को पढ़ा और ठीक किया है - Django को पिछड़ी संगतता के बारे में बहुत कम परवाह है, इसलिए मैं आमतौर पर हर छोटे संस्करण को अपग्रेड पथ पर मारने का सुझाव दूंगा (या कम से कम यह सुनिश्चित करें कि आप "पीछे की ओर पढ़ें" असंगतता "और प्रत्येक लघु संस्करण के लिए पदावनति सूची)।

सौभाग्य (हम अभी py27 / dj1.7 से 300 + Kloc कोड आधार का उन्नयन कर रहे हैं, इसलिए मुझे आपका दर्द महसूस हो रहा है ;-)


1
टेस्ट कवरेज पर +1। यहां एक महत्वपूर्ण मीट्रिक है, जो भी दृष्टिकोण लेता है वह लेता है। यह वास्तव में मदद करता है जब व्यापक कोड में परिवर्तन के साथ प्रयोग और मैं इस कह रहा हूँ कोई है जो है के रूप में नहीं सभी एक TDD लाल / ग्रीन परीक्षण पर प्रशंसक। अपने 2.7 परिणामों को आधारभूत बनाने का एक तरीका है और उन्नयन बहुत आसान हो जाता है।
JL Peyret

2

मेरे प्रोजेक्ट के साथ मेरे पास एक ही तरह का मुद्दा है और मैंने Django संस्करण 2.2.7 के साथ अजगर 3.7.5 की कोशिश की है।

आपको पायथन के नवीनतम संस्करण 3.8 या Django के नवीनतम संस्करण 3.0 के साथ नहीं जाना चाहिए क्योंकि आपके पास संभावना है कि किसी भी प्रकार के बग के लिए आप नवीनतम संस्करणों के लिए उचित समाधान प्राप्त करने में सक्षम नहीं हो सकते हैं।


यह टिप्पणी होनी चाहिए
ब्रूनो

-2

आपको वर्तमान संस्करणों के लिए शूट करने का प्रयास करना चाहिए। Python 3.8 और Django 3.0। छह पुस्तकालय कुछ सम्मेलन परिवर्तनों के साथ मदद करेंगे। किसी भी तरह से आप कुछ refactoring करने जा रहे हैं ताकि आप इसे वर्तमान बना सकें।


3
क्या तुमने कभी एक Django उन्नयन किया है? यह सिर्फ इच्छाधारी सोच है। पायथन 3.8 और Django 3.0 से सीधे 2.7 / 1.9 पर जाना लगभग असंभव होगा। यहां तक ​​कि Django 1.9 से 1.10 जैसे मामूली संस्करणों को अपग्रेड करना एक कठिन प्रक्रिया हो सकती है, जिसमें कई कोड परिवर्तन की आवश्यकता होती है।
विम

हां, मुझे दी गई अनुमति है, मुझे एक पूर्ण रिफ्लेक्टर करने और एप्लिकेशन को चालू करने के लिए लक्जरी और समय की मंजूरी थी। फिर आवेदन आकार, तर्क और समय की कमी सबसे लोगों के लिए एक बहुत बड़ा मुद्दा है लेकिन वे आवेदन आकार या समय बाधा का उल्लेख नहीं है, इसलिए मैं "सबसे अच्छा समाधान" या "इच्छाधारी सोच" की मेरी राय सिफारिश की;)
डेव

इसके अलावा अगर आपको एंसिबल और एलटीएस उबंटू पर चलने वाली चीजों के बारे में चिंता करनी है, तो आपको यह भी पता चलेगा कि 3.7 का समर्थन उबंटू यूएई पर नहीं है। सुरक्षा पॉडकास्ट मैं सलाह देता हूं कि एक बिंदु के रिलीज तक 3.8 को थोड़ा व्यवस्थित करने दें या अनावश्यक जोखिम के लिए 2. -1।
जेएल पायरेट

कोई अच्छा सुरक्षा पॉडकास्ट सिफारिशें?
डेव

पायथन सेकंड के लिए, listennotes.com/podcasts/talk-python-to-me/… लेकिन मुझे लगता है कि खबरदार- 3.8- for- a- जबकि एक और हाल ही में है। यदि आप अंतरराष्ट्रीय संबंधों का पालन करते हैं तो रिस्की बिजनेस एक अच्छा और मनोरंजक सुरक्षा पॉडकास्ट है। पतन के लिए क्षमायाचना, लेकिन हाँ, आपके मामले में जो काम किया गया वह किसी और संदर्भ में किसी और के साथ छेड़छाड़ कर सकता है। 2 से 3 रूपांतरण के लिए listennotes.com/podcasts/talk-python-to-me/…
JL Peyret
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.