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 беру осы шақыруға сол ортаны береді. Көшірме os.environ-ды Python процесіндегі басқа жұмыс үшін өзгертуден сақтайды.

os.environ-ға тікелей меншіктеудің де мәні бар: ол Python процесінің ортасын жаңартады және кейін іске қосылған еншілес процестерге әсер етуі мүмкін. Ол Python-ды іске қосқан shell-ді жаңартпайды, байланысы жоқ қолданбаны да, қазірдің өзінде жұмыс істеп тұрған еншілес процесті де.

Мақсат интерактивті shell-іңіздегі болашақ пәрмендерді өзгерту болса, бұл өзгерісті shell-де жасаңыз. Тек бір іске қосылған құралға басқа маршрут керек болса, оның ортасын көрсетілгендей subprocess шақыруының жанында ұстаңыз.

Қатысты мақалалар