Python subprocess.run: bitta bola buyruqqa o'zining proksi muhitini berish
Bitta bola buyruqqa proksi kerak bo'lganda, Python muhitini boshqa ish uchun o'zgartirmasdan, nusxalangan muhitni subprocess.run ga bering.
Python dasturi bitta bola buyruqqa o'zining proksi muhitini bera oladi. Meros qolgan qiymatlarni nusxalang, nusxani o'zgartiring va uni subprocess.run ga bering:
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,
)Misol curl allaqachon mavjud deb hisoblaydi. Uning HTTPS so'rovi kerakli tunnelni qo'llab-quvvatlaydigan HTTP proksidan foydalanishi mumkin. Proksi hisob ma'lumotlari sozlanmagan holda ushbu ochiq saytni tekshirish uchun HTTP proksilar ro'yxatidan nomzod misoldagi manzilni almashtirishi mumkin. Bola nusxalangan muhitning qolgan qismini, shuningdek tegishli chetlab o'tish sozlamalarini oladi.
env ni berish bu chaqiruvga o'sha muhitni beradi. Nusxa Python jarayonidagi boshqa ish uchun os.environ o'zgarishini oldini oladi.
To'g'ridan-to'g'ri os.environ ga tayinlash ham mantiqiy: u Python jarayoni muhitini yangilaydi va keyinroq ishga tushirilgan bolalarga ta'sir qilishi mumkin. U Python ni ishga tushirgan shellni yangilamaydi, aloqasiz dasturni ham, allaqachon ishlab turgan bolani ham.
Agar maqsad interaktiv shellingizdagi kelgusi buyruqlarni o'zgartirish bo'lsa, bu o'zgarishni shell ichida qiling. Faqat bitta ishga tushirilgan asbobga boshqa yo'l kerak bo'lsa, uning muhitini ko'rsatilgandek subprocess chaqiruvi yonida saqlang.