Ich verwende den folgenden Python-Code, um die Umgebungsvariable http_proxy
zurückzusetzen in Linux CentOS 6, aber es setzt die Variable für den Rest des Python-Skripts nicht zurück.
Code:
import os
print "Unsetting http..."
os.system("unset http_proxy")
os.system("echo $http_proxy")
print "http is reset"
Ausgabe:
Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0
Akzeptierte Antwort:
Jeder Aufruf von os.system()
läuft in einer eigenen Subshell mit einer eigenen frischen Umgebung:
>>> import os
>>> os.system("echo $$")
97678
0
>>> os.system("echo $$")
97679
0
Sie sind Deaktivieren des http_proxy
Variable, aber dann hat Ihre Subshell die Ausführung des Befehls abgeschlossen (also:unset
) und endet. Anschließend starten Sie eine neue Subshell mit einer neuen Umgebung, in der echo
ausgeführt wird .
Ich glaube, was Sie versuchen, ist del os.environ['http_proxy']
, oder os.environ.pop('http_proxy')
wenn Sie sicherstellen möchten, dass kein http_proxy
vorhanden ist Umgebungsvariable, ob zuvor eine existierte oder nicht:
$ 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