Python subprocess.run: eman haur-komando bati bere proxy ingurunea
Pasatu kopiatutako ingurunea subprocess.run-i haur-komando batek proxy bat behar duenean, Pythonen ingurunea beste lanetarako aldatu gabe.
Python programak haur-komando bati bere proxy ingurunea eman diezaioke. Kopiatu heredatutako balioak, aldatu kopia eta pasatu subprocess.run-i:
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,
)Adibideak curl jada eskuragarri dagoela suposatzen du. Bere HTTPS eskaerak behar den tunela onartzen duen HTTP proxya erabil dezake. Proxy kredentzialik konfiguratu gabe gune publiko honen egiaztapenerako, HTTP proxy zerrendako hautagai batek adibideko amaiera-puntua ordezka dezake. Haurrak kopiatutako ingurunearen gainerakoa jasotzen du oraindik, aplikagarriak diren saihesbide-ezarpenak barne.
env pasatzeak ingurune hori ematen dio dei honi. Kopiak os.environ aldatzea saihesten du Python prozesuko beste lanetarako.
os.environ-i zuzenean esleitzea ere esanguratsua da: Pythonen prozesu-ingurunea eguneratzen du eta geroago abiatutako haurrei eragin diezaieke. Ez du Python abiarazi zuen shell-a eguneratzen, ez aplikazio erlazionatugabea, ezta jadanik martxan dagoen haur bat ere.
Asmoa zure shell interaktiboan etorkizuneko komandoak aldatzea bada, egin aldaketa hori shell-ean. Tresna abiarazi bakarrari bide desberdina behar badio, eduki bere ingurunea subprocess deiaren ondoan, erakusten den bezala.