अजगर में एक लिनक्स पर्यावरण चर को परेशान करने का सही तरीका क्या है?


85

प्रलेखन से:

यदि प्लेटफ़ॉर्म unsetenv()फ़ंक्शन का समर्थन करता है, तो आप इस मैपिंग में आइटमों को हटाकर पर्यावरण चर को हटा सकते हैं। unsetenv()स्वचालित रूप से बुलाया जाएगा जब एक आइटम os.environ से हटा दिया जाता है, और जब से एक pop()या clear()तरीकों कहा जाता है।

हालांकि मुझे कुछ ऐसा चाहिए जो उपलब्धता के बावजूद काम करेगा unsetenv()। यदि यह उपलब्ध नहीं है तो मैं मानचित्रण से आइटम कैसे हटाऊं? os.environ['MYVAR'] = None?


1
unsetenvडॉक्स के अनुसार "यूनिक्स के सबसे जायके, विंडोज" पर काम करता है।
कैट्रील

हम्म, मुझे यकीन नहीं था। मैं एक ऐसे मंच पर हूँ जहाँ $ unset MYVARकमांड काम करते हैं
fredley 12

जवाबों:


139

केवल

del os.environ['MYVAR']

कार्य करना चाहिए।


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

1
यदि कुंजी मौजूद नहीं है, तो मुझे लगता है कि आपको एक KeyError मिलती है।
रिकोफोसुसा

5
OSX पर नहीं होने पर रिकॉर्ड del os.environके लिए काम किया os.unsetenv
jeremyjjbrown


FYI करें यह समाधान नहीं है। यानी अगर MYVARपर्यावरण में मौजूद नहीं है, तो आपको एक अपवाद मिलेगा। आप इसे लपेट सकते हैं try:लेकिन यह दुर्भाग्यपूर्ण है।
मध्याह्न

9

आप अभी भी मैपिंग से आइटम हटा सकते हैं , लेकिन अगर unsetenv()यह उपलब्ध नहीं है तो यह वास्तव में पर्यावरण से चर को नहीं हटाएगा।

del os.environ['MYVAR']
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.