2010-08-26 3 views
37

Aus der Dokumentation:Was ist der richtige Weg, um eine Linux-Umgebungsvariable in Python zu deaktivieren?

Wenn die Plattform, um die unsetenv() Funktion unterstützt, können Sie Elemente in dieser Abbildung zu ungesetzt Umgebungsvariablen löschen. unsetenv() wird automatisch aufgerufen, wenn ein Element aus os.environ gelöscht wird und wenn eine der Methoden pop() oder clear() aufgerufen wird.

Allerdings möchte ich etwas, das unabhängig von der Verfügbarkeit von unsetenv() funktioniert. Wie lösche ich Objekte aus dem Mapping, wenn sie nicht verfügbar sind? os.environ['MYVAR'] = None?

+1

'unsetenv' arbeitet auf" den meisten Aromen von Unix, Windows "laut den Dokumenten. – katrielalex

+0

hmmm, ich war mir nicht sicher. Ich bin auf einer Plattform, auf der '$ unset MYVAR' Befehle funktionieren – fredley

Antwort

58

Gerade

del os.environ['MYVAR'] 

sollte funktionieren.

+2

Das funktioniert, wenn' unsetenv' das tut. – katrielalex

+1

Die Frage bestand darin, Elemente aus dem Mapping zu entfernen. Wenn unsetenv nicht unterstützt wird, werden der Schlüssel und der Wert aus dem Mapping entfernt, bleiben aber in der Umgebung gesetzt, neh? –

+1

Wenn der Schlüssel nicht existiert, denke ich, dass Sie einen KeyError bekommen. – rickfoosusa

4

Sie können weiterhin Elemente aus der -Zuordnung löschen, die Variable wird jedoch nicht wirklich aus der Umgebung gelöscht, wenn unsetenv() nicht verfügbar ist.

del os.environ['MYVAR'] 
Verwandte Themen