python - सी एक्सटेंशन मॉड्यूल के लिए os.environment की दृश्यता



python-3.x sqlite3 (1)

अगर मैं पर्यावरण चर का उपयोग कर os.environ , तो क्या मैं बाद में उस बदलाव को देखने वाले मॉड्यूल को आयात करूँगा?

विशेष रूप से, sqlite3 को अपने अस्थायी फ़ाइल स्थान को निर्धारित करने के लिए एक वातावरण चर के उपयोग की आवश्यकता है । लेकिन अगर मैं os.environ['SQLITE_TMPDIR'] = '.' उपयोग करता os.environ['SQLITE_TMPDIR'] = '.' import sqlite3 से पहले, यह वांछित प्रभाव नहीं है क्यूं कर?


sqlite3 मॉड्यूल सिर्फ SQLite सी लाइब्रेरी के लिए एक आवरण है, इसलिए यह os.environ किए गए कोई भी परिवर्तन प्रत्यक्ष रूप से दिखाई नहीं os.environ

हालांकि, दस्तावेज़ीकरण कहता है:

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

इसलिए यदि आपके द्वारा os.environ बदल जाने के बाद SQLite लाइब्रेरी को आरंभ किया गया है, तो यह परिवर्तनों को देखेगा।

कृपया ध्यान दें कि SQLite Unix-y OSes और Windows पर विभिन्न परिवेश चर पढ़ता है





environment-variables