J'utilise le code python ci-dessous pour réinitialiser la variable d'environnement http_proxy
sous Linux CentOS 6, mais il ne supprime pas la variable pour le reste du script Python.
Code :
import os
print "Unsetting http..."
os.system("unset http_proxy")
os.system("echo $http_proxy")
print "http is reset"
Sortie :
Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0
Réponse acceptée :
Chaque invocation de os.system()
s'exécute dans son propre sous-shell, avec son propre environnement :
>>> import os
>>> os.system("echo $$")
97678
0
>>> os.system("echo $$")
97679
0
Vous êtes désactiver le http_proxy
variable, mais votre sous-shell a terminé l'exécution de la commande (à savoir :unset
) et se termine. Vous démarrez ensuite un nouveau sous-shell avec un nouvel environnement dans lequel exécuter echo
.
Je crois que ce que vous essayez de faire est del os.environ['http_proxy']
, ou os.environ.pop('http_proxy')
si vous voulez vous assurer qu'il n'y a pas de http_proxy
variable d'environnement, qu'elle ait existé ou non :
$ 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