Un programa de Python pode darlle a un comando fillo o seu propio contorno de proxy. Copie os valores herdados, modifique a copia e pásaa a 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,
)

O exemplo supón que curl xa está dispoñible. A súa solicitude HTTPS pode usar un proxy HTTP que admita o túnel necesario. Para esta comprobación dun sitio público sen credenciais de proxy configuradas, un candidato da lista de proxies HTTP pode substituír o punto de conexión do exemplo. O fillo segue recibindo o resto do contorno copiado, incluídas as configuracións de omisión que correspondan.

Pasar env dálle a esta invocación ese contorno. A copia evita cambiar os.environ para outro traballo no proceso de Python.

Asignar directamente a os.environ tamén ten sentido: actualiza o contorno do proceso de Python e pode afectar os fillos iniciados despois. Non actualiza a consola que iniciou Python, nin unha aplicación non relacionada, nin un fillo que xa se está executando.

Se a intención é cambiar comandos futuros na súa consola interactiva, faga ese cambio na consola. Se só unha ferramenta lanzada necesita unha ruta distinta, manteña o seu contorno xunto á invocación de subprocess, como se mostra.

Artigos relacionados