Python proqramı bir alt əmrə öz proxy mühitini verə bilər. Miras alınan dəyərləri kopyalayın, kopyanı dəyişin və subprocess.run-a ötürün:

import os
import subprocess

child_env = os.environ.copy()
child_env["https_proxy"] = "http://proxy.example:8080"
subprocess.run(
    ["curl", "--head", "https://www.example.com/"],
    env=child_env,
    check=True,
    timeout=30,
)

Nümunə curl-un artıq mövcud olduğunu qəbul edir. Onun HTTPS sorğusu tələb olunan tuneli dəstəkləyən HTTP proxy-dən istifadə edə bilər. Proxy məlumatları qurulmadan bu ictimai sayt yoxlaması üçün HTTP proxy siyahısından bir namizəd nümunədəki endpoint-i əvəz edə bilər. Alt proses kopyalanmış mühitin qalan hissəsini, o cümlədən tətbiq olunan bypass ayarlarını yenə də alır.

env ötürmək bu çağırışa həmin mühiti verir. Kopya os.environ-un Python prosesindəki digər işlər üçün dəyişməsinin qarşısını alır.

Birbaşa os.environ-a mənimsətmək də mənalıdır: o, Python-un proses mühitini yeniləyir və sonradan başladılan alt proseslərə təsir edə bilər. Python-u işə salan shell-i yeniləmir, əlaqəsiz tətbiqi və ya artıq işləyən alt prosesi də yeniləmir.

Məqsəd interaktiv shell-inizdə gələcək əmrləri dəyişməkdirsə, bu dəyişikliyi shell-də edin. Yalnız bir işə salınmış alət fərqli marşrut tələb edirsə, onun mühitini göstərildiyi kimi subprocess çağırışının yanında saxlayın.

Əlaqəli məqalələr