एउटा 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 कलको छेउमा राख्नुहोस्।

सम्बन्धित लेखहरू