6

पाइथन प्रोग्राम के लिए मैं लिख रहा हूं, मैं इसे तीन अलग-अलग तरीकों से कॉन्फ़िगर करने का अवसर देना चाहता हूं। पर्यावरण चर, विन्यास फाइल और कमांड लाइन तर्क।कॉन्फ़िगरेशन मान पढ़ने का क्या क्रम?

तर्कसंगत रूप से मुझे लगता है कि कमांड लाइन तर्क हमेशा सर्वोच्च प्राथमिकता होना चाहिए। मैं थोड़ा सा संदेह कर रहा हूं कि कॉन्फ़िगरेशन फ़ाइलों पर पर्यावरण चर के प्राथमिकता होनी चाहिए या नहीं? और इससे कोई फर्क नहीं पड़ता कि कॉन्फ़िगरेशन फ़ाइलें सिस्टम चौड़ी हैं, उपयोगकर्ता विशिष्ट हैं या कमांड लाइन पर तर्क के रूप में दी गई हैं?

(ध्यान दें कि मेरे मंच यूनिक्स/लिनक्स है)

उत्तर

15

मानक मुझे पता है कि एक कमांड लाइन पैरामीटर के लिए पहले देखो, नहीं मिला, तो पर्यावरण वर, तो स्थानीय कॉन्फ़िग फ़ाइल तो वैश्विक कॉन्फ़िग फ़ाइल है।

तो जब कोई पैकेज कहीं स्थापित होता है। इसमें एक डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल होगी। इसे स्थानीय कॉन्फ़िगरेशन फ़ाइल के साथ बदला जा सकता है। जिसे पर्यावरण पैरामीटर के साथ ओवरराइड किया जा सकता है और फिर कमांड लाइन परम उच्चतम प्राथमिकता है।

यदि कमांड लाइन पर कॉन्फ़िगरेशन फ़ाइल घोषित की जाती है तो इसकी सामग्री को पर्यावरण पैराम या किसी अन्य कॉन्फ़िगरेशन फ़ाइलों पर प्राथमिकता दी जाएगी। लेकिन कमांड लाइन पैरा इस पर प्राथमिकता लेंगे। लेकिन याद रखें कि खोज पथ अभी भी मौजूद है। यदि पैकेज एक var की तलाश में है तो यह दिखता है।

Command line. 
Config file thats name is declared on the command line. 
Environment vars 
Local config file (if exists) 
Global config file (if exists) 

मैं कई कमांड लाइन संकलनकर्ता और इसी तरह से

+0

मैं अगर आपके दिए गए आदेश सरकारी या हमेशा सार्थक है पता नहीं है में बूस्ट पुस्तकालय config पाक काम करता है लगता है, लेकिन यह मेरे लिए बहुत अच्छा लगता है:) +1 – Mecki

+0

वैसे हम हमेशा बहुत सारा पैसा खर्च कर सकते हैं और आईईईई मानक बना सकते हैं। ना। थोड़ा इनाम के लिए बहुत अधिक समय और प्रयास। माइक्रोसॉफ्ट और Google और अन्य सामान्य संदिग्धों के पास उनके हजारों और एक कारण होंगे कि वे संभवतः मेकी/किंग दिशानिर्देश के अनुरूप क्यों नहीं हो सकते हैं। – kingchris

+1

"कमांड लाइन पर कॉन्फ़िगरेशन फ़ाइल" स्थिति बहस योग्य है। मेरे अनुभव से, यह आमतौर पर स्टॉक फ़ाइलों को प्रतिस्थापित करता है। –