Sto usando il codice Python sotto per ripristinare la variabile di ambiente http_proxy
in Linux CentOS 6, ma non sta disimpostando la variabile per il resto dello script Python.
Codice:
import os
print "Unsetting http..."
os.system("unset http_proxy")
os.system("echo $http_proxy")
print "http is reset"
Uscita:
Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0
Risposta accettata:
Ogni chiamata di os.system()
viene eseguito nella propria subshell, con il proprio nuovo ambiente:
>>> import os
>>> os.system("echo $$")
97678
0
>>> os.system("echo $$")
97679
0
Tu sei disimpostando il http_proxy
variabile, ma poi la tua subshell ha completato l'esecuzione del comando (ad esempio:unset
), e termina. Quindi avvii una nuova subshell con un nuovo ambiente in cui eseguire echo
.
Credo che quello che stai cercando di fare sia del os.environ['http_proxy']
o os.environ.pop('http_proxy')
se vuoi assicurarti che non ci sia http_proxy
variabile di ambiente indipendentemente dal fatto che ne esistesse o meno una in precedenza:
$ 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