ایک 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 شروع کیا، نہ غیر متعلق ایپلیکیشن کو اور نہ ہی پہلے سے چل رہے چائلڈ کو۔

اگر مقصد آپ کے انٹرایکٹو شیل میں آئندہ کمانڈز بدلنا ہے تو یہ تبدیلی شیل میں کریں۔ اگر صرف ایک شروع کیا گیا ٹول مختلف راستہ چاہتا ہے تو دکھائے گئے مطابق اس کا ماحول subprocess کال کے پاس رکھیں۔

متعلقہ مضامین