मुझे इस सवाल का एहसास है जैसा कि पहले पूछा गया था (सबसे अच्छा क्या है पायथन में एक सेटिंग फ़ाइल का उपयोग करने का अभ्यास करें?) लेकिन जैसा कि 7 साल पहले पूछा गया था, मुझे लगता है कि यह फिर से चर्चा करने के लिए वैध है कि तकनीक कैसे विकसित हुई है।

मेरे पास एक पायथन प्रोजेक्ट है जिसके लिए पर्यावरण चर के मान के आधार पर विभिन्न कॉन्फ़िगरेशन का उपयोग करने की आवश्यकता है। चूंकि कॉन्फ़िगरेशन फ़ाइल चुनने के लिए पर्यावरण चर का उपयोग करना काफी आसान है, मेरा प्रश्न इस प्रकार है:

पाइथन में एक कॉन्फ़िगरेशन फ़ाइल सेट करने के लिए सॉफ़्टवेयर उद्योग में किस प्रारूप को सर्वोत्तम अभ्यास के रूप में देखा जाता है, जब पर्यावरण के आधार पर कई कॉन्फ़िगरेशन की आवश्यकता होती है?

मुझे एहसास है कि अजगर एक ConfigParser मॉड्यूल के साथ आता है, लेकिन मैं सोच रहा था कि क्या वाईएएमएल या जेएसओएन जैसे प्रारूप का उपयोग करना बेहतर हो सकता है क्योंकि भाषाओं में उनके उपयोग में आसानी के कारण लोकप्रियता में वृद्धि हुई है। जब आपके पास एकाधिक कॉन्फ़िगरेशन हों तो कौन सा प्रारूप बनाए रखना आसान माना जाता है?

6
Keegan Ferrett 4 अप्रैल 2018, 08:56

3 जवाब

यह वास्तव में नहीं बल्कि प्रारूप की लोकप्रियता से, अपनी आवश्यकताओं पर निर्भर करता है। उदाहरण के लिए, अगर आप सिर्फ सरल कुंजी-मान जोड़ों की जरूरत है, एक INI फ़ाइल की तुलना में अधिक पर्याप्त होगा। जैसे ही आप जटिल संरचनाओं (जैसे, सरणियों या शब्दकोशों) की जरूरत के रूप में, मैं JSON या YAML के लिए जाना चाहते हैं। JSON केवल डेटा संग्रहीत करता है (यह सिस्टम के बीच स्वचालित डेटा प्रवाह के लिए अधिक अभिप्रेत है), जबकि YAML मानव-जनित (या रखरखाव, या पढ़ने) फ़ाइलों के लिए बेहतर है, क्योंकि इसमें टिप्पणियां हैं, आप फ़ाइल में कहीं और मूल्यों का संदर्भ दे सकते हैं ... और इसके शीर्ष पर, यदि आप मजबूती, लचीलापन और फ़ाइल की सही संरचना की जांच करने के साधन चाहते हैं (लेकिन डेटा के मैन्युअल संस्करण के बारे में ज्यादा परवाह नहीं करते हैं), तो मैं एक्सएमएल के लिए जाऊंगा।

0
Jesus Alonso Abad 4 अप्रैल 2018, 06:33

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

यह JSON या YAML कॉन्फ़िगरेशन फ़ाइलों के साथ बहुत अधिक फैंसी नहीं है - यह केवल सेटिंग्स.py नामक एक पायथन मॉड्यूल का उपयोग करता है जिसे किसी भी अन्य मॉड्यूल में आयात किया जा सकता है जिसे सेटिंग्स तक पहुंचने की आवश्यकता होती है। पर्यावरण चर आधारित सेटिंग्स को भी वहां परिभाषित किया गया है। यहाँ Github पर Django के लिए एक उदाहरण settings.py फ़ाइल का लिंक दिया गया है:

https://github.com/deis/example-python-django/blob/master/helloworld/settings.py

2
Initial Commit 4 अप्रैल 2018, 06:09

मैं इस तथ्य का भी लाभ उठाना चाहता हूं कि आपको पायथन स्रोत को संकलित करने और कॉन्फ़िगरेशन के लिए सादे पायथन फ़ाइलों का उपयोग करने की आवश्यकता नहीं है। लेकिन वास्तविक दुनिया में आपके पास कई वातावरण हो सकते हैं, प्रत्येक को एक अलग कॉन्फ़िगरेशन की आवश्यकता होती है, और आप env var या फ़ाइलों से कुछ (ज्यादातर संवेदनशील) जानकारी भी पढ़ना चाह सकते हैं जो स्रोत नियंत्रण में नहीं हैं (गलती से उन्हें रोकने के लिए)।

इसलिए मैंने यह लाइब्रेरी लिखी है: https://github.com/davidohana/kofiko, जो आपको कॉन्फ़िगरेशन के लिए सादे पायथन फ़ाइलों का उपयोग करने देता है, लेकिन उन कॉन्फ़िगरेशन सेटिंग्स को .ini या env-vars से ओवरराइड करने में भी सक्षम है, और विभिन्न वातावरणों के लिए अनुकूलन का समर्थन भी करता है।

इसके बारे में ब्लॉग पोस्ट: https://medium.com/swlh /code-first-configuration-approach-for-python-f975469433b9

0
dux2 30 जून 2020, 05:56