Estoy usando el siguiente código de Python para restablecer la variable de entorno http_proxy
en Linux CentOS 6, pero no desarma la variable para el resto de la secuencia de comandos de Python.
Código:
import os
print "Unsetting http..."
os.system("unset http_proxy")
os.system("echo $http_proxy")
print "http is reset"
Salida:
Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0
Respuesta aceptada:
Cada invocación de os.system()
se ejecuta en su propia subcapa, con su propio entorno nuevo:
>>> import os
>>> os.system("echo $$")
97678
0
>>> os.system("echo $$")
97679
0
Tu eres deshabilitando el http_proxy
variable, pero luego su subshell ha completado la ejecución del comando (a saber:unset
), y termina. A continuación, inicia una nueva subcapa con un nuevo entorno en el que ejecutar echo
.
Creo que lo que intentas hacer es del os.environ['http_proxy']
, o os.environ.pop('http_proxy')
si quiere asegurarse de que no haya http_proxy
variable de entorno, ya sea que haya existido previamente o no:
$ export foo=bar
$ python2
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['foo']
'bar'
>>> del os.environ['foo']
>>> os.system('echo $foo')
0