Я использую следующий код python (Python 2.7) для сброса прокси моей системы (Cent OS 6) , но я не могу сбросить прокси:
Код:
import os
print "Unsetting http..."
os.system("unset http_proxy")
os.system("echo $http_proxy")
print "http is reset"
Вывод:
Unsetting http...
http://web-proxy.xxxx.xxxxxxx.net:8080
http is reset
Process finished with exit code 0
Он не должен возвращать http://web-proxy.xxxx.xxxxxxx.net:8080 на выходе .
Я запускаю ту же команду unset из терминала, затем вижу, что прокси сброшен:
[trex @ sumlnxvm ~] $ unset $ HTTP_PROXY {{ 1}} [trex @ sumlnxvm ~] $ echo $ HTTP_PROXY
[trex @ sumlnxvm ~] $ Пожалуйста, предложите, как сбросить системный прокси с помощью Python Код
Вы не можете сделать этого. Переменная среды начинается с Вашей родительской оболочкой (тот, который Вы запустили свою программу от). Родительская оболочка создает новый процесс (для выполнения кода Python в) и копирует переменные среды в тот процесс. Каждый из Вашего os.system()
создает новый процесс и копирует переменные среды в него. Затем os.system()
созданные выходы процесса и его среда уходит.
Дочерние процессы не могут изменить среду родителя.