Python програм нь нэг хүү командад өөрийн прокси орчныг өгч чадна. Өвлөгдсөн утгуудыг хуулж, хуулбарыг өөрчилж, дараа нь subprocess.run-д дамжуулна:

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,
)

Жишээ нь curl аль хэдийн боломжтой гэж үздэг. Түүний HTTPS хүсэлт шаардлагатай туннелийг дэмждэг HTTP прокси ашиглаж болно. Прокси бүртгэлийн мэдээлэл тохируулаагүй энэ нийтийн сайтын шалгалтад HTTP прокси жагсаалтаас нэр дэвшигч жишээний төгсгөлийн цэгийг орлуулж болно. Хүү процесс хуулсан орчны үлдсэн хэсгийг, түүний дотор хамаарах тойрч гарах тохиргоог хүлээн авна.

env дамжуулснаар энэ дуудлага тэр орчныг авна. Хуулбар нь Python процессын бусад ажилд зориулж os.environ-ыг өөрчлөхөөс сэргийлнэ.

os.environ-д шууд оноох нь бас утга учиртай: энэ нь Python процессын орчныг шинэчилж, дараа нь эхлүүлэх хүү процессуудад нөлөөлж болно. Гэхдээ Python-ыг эхлүүлсэн shell, хамааралгүй аппликейшн, эсвэл аль хэдийн ажиллаж буй хүү процессыг шинэчлэхгүй.

Зорилго нь интерактив shell дэх ирээдүйн командуудыг өөрчлөх бол тэр өөрчлөлтийг shell дотор хий. Зөвхөн нэг эхлүүлсэн хэрэгсэлд өөр зам хэрэгтэй бол түүний орчныг үзүүлсэн шиг subprocess дуудлагын дэргэд байлга.

Холбоотой нийтлэлүүд