لاندې بلنې دوه جلا shell پروسې جوړوي:

os.system('unset http_proxy')
os.system('curl https://example.com/')

لومړی shell له خپل چاپېریال څخه یو متغیر لرې کوي او وتل کوي. Python پروسه لا هم اصلي ارزښت لري. دویم shell بیا هغه میراث اخلي.

ماشوم ته هغه چاپېریال ورکړئ چې تاسو یې غوښتي

کله چې یوازې یو امر باید پرته له میراثي پروکسي متغیرونو چل شي، Python چاپېریال کاپي کړئ او کاپي ماشوم ته ورکړئ:

import os
import subprocess

env = os.environ.copy()
for name in ('http_proxy', 'https_proxy', 'all_proxy',
             'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY'):
    env.pop(name, None)
subprocess.run(['curl', '--proxy', '', 'https://example.com/'],
               env=env, check=True)

د curl صریح خالي پروکسي تنظیم هم د curl له خپل ترتیب څخه د پروکسي غوراوي مخه نیسي. د چاپېریال کاپي نور هغه ارزښتونه ساتي چې امر ورته اړتیا ولري. پرځای یې خالي چاپېریال ورکول کېدای شي د اجرا وړ فایلونو د لټون لارې او نامرتبط اپلیکیشن ترتیب لرې کړي.

په Python پروسه کې د راتلونکو عملیاتو لپاره، os.environ په قصد بدل کړئ. دا په دې اغېزه کوي چې نوي جوړ شوي ماشومان څه میراث اخلي؛ دا د مورني ټرمینل چاپېریال بیا نه لیکي او نه هم هغو HTTP کلاینټونو ته اړینه بیا تنظیم کوي چې خپل تنظیمات یې دمخه نیولي دي.

subprocess API env دلیل مستند کوي، او os.environ د Python د پروسې چاپېریال تشریح کوي. همدا بېلابېلې سیمې لامل دي چې یو shell امر کولای شي بریالیتوب راپور کړي په داسې حال کې چې بله غوښتنه لا هم زوړ پروکسي کاروي.

په پای کې، هغه کلاینټ چې تاسو یې واقعاً چلوئ وګورئ. د چاپېریال متغیرونه یوازې یو ترتیبي انپټ دي. صریح پروکسي اختیار یا د اپلیکیشن خپل ترتیب کولای شي د هغو متغیرونو له منځه تلو وروسته هم پروکسي غوره کړي.

اړوندې مقالې