Python subprocess.run: एका चाइल्ड कमांडला त्याचे स्वतःचे प्रॉक्सी वातावरण द्या
एका चाइल्ड कमांडला प्रॉक्सी हवा असताना कॉपी केलेले वातावरण subprocess.run ला द्या, Python चे वातावरण इतर कामासाठी न बदलता.
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 कॉलजवळ ठेवा.