127 votes

Quelle est la bonne façon de désactiver une variable d'environnement linux en python ?

Extrait de la documentation :

Si la plateforme prend en charge le unsetenv() vous pouvez supprimer des éléments de ce mappage pour désactiver des variables d'environnement. unsetenv() sera appelé automatiquement lorsqu'un élément est supprimé de os.environ, et lorsque l'un des éléments suivants est supprimé pop() o clear() est appelée.

Cependant, je veux quelque chose qui fonctionne indépendamment de la disponibilité de unsetenv() . Comment supprimer des éléments de la cartographie s'ils ne sont pas disponibles ? os.environ['MYVAR'] = None ?

200voto

Vinay Sajip Points 41286

Juste

del os.environ['MYVAR']

devrait fonctionner.

29voto

Fomalhaut Points 2544

Pour ceux qui recherchent une manière élégante de désactiver une variable d'environnement sans erreurs si la variable n'existe pas :

os.environ.pop('MYVAR', None)

Cela fonctionne exactement comme :

if 'MYVAR' in os.environ:
    del os.environ['MYVAR']

Mais si vous devez traiter l'exception, faites ce que d'autres utilisateurs ont suggéré : del os.environ['MYVAR'] o os.environ.pop('MYVAR') .

12voto

Sjoerd Points 34671

Vous pouvez toujours supprimer des éléments de la cartographie mais il ne supprimera pas vraiment la variable de l'environnement si unsetenv() n'est pas disponible.

del os.environ['MYVAR']

-1voto

Quanlong Points 28

Essayez ceci si vous avez besoin d'une méthode valide, comme dans TestCase.addCleanup()

os.environ.pop('MYVAR')

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X