2010-08-26 19 views
37

De la documentación:¿Cuál es la forma correcta de desarmar una variable de entorno de Linux en Python?

Si la plataforma es compatible con la función unsetenv(), puede eliminar elementos de esta asignación a las variables de entorno no se ha establecido. unsetenv() se invocará automáticamente cuando se elimine un elemento de os.environ, y cuando se invoque uno de los métodos pop() o .

Sin embargo, quiero algo que funcione independientemente de la disponibilidad de unsetenv(). ¿Cómo elimino elementos del mapeo si no está disponible? os.environ['MYVAR'] = None?

+1

'unsetenv' funciona en" la mayoría de los sabores de Unix, Windows "de acuerdo con los documentos. – katrielalex

+0

hmmm, no estaba seguro. Estoy en una plataforma donde los comandos '$ unset MYVAR' funcionan – fredley

Respuesta

58

Sólo

del os.environ['MYVAR'] 

debería funcionar.

+2

Eso funciona iff' unsetenv'. – katrielalex

+1

La cuestión era sobre la eliminación de elementos del mapeo, después de todo. Si unsetenv no es compatible, la clave y el valor se eliminan de la asignación, pero permanecen en el entorno, ¿verdad? –

+1

Si la clave no existe, creo que obtienes un KeyError. – rickfoosusa

4

Aún puede eliminar elementos de la asignación , pero realmente no eliminará la variable del entorno si unsetenv() no está disponible.

del os.environ['MYVAR'] 
Cuestiones relacionadas