Pase o proxy ao proceso pip que inicia
Invoque pip mediante o intérprete de Python previsto e proporcione --proxy como argumento de subprocess separado en lugar de importar as partes internas de pip.
Cando un script de aprovisionamento existente necesita executar pip a través dun proxy, inicie pip como subprocess. As funcións internas de Python de pip non son unha API de aplicación compatible.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Utilice o paquete e o punto de conexión de proxy previstos. Para descargas de paquetes públicos permitidas a través dun intermediario público, a lista de proxies HTTP ofrece candidatos para o argumento de proxy HTTP. sys.executable selecciona o intérprete de Python que executa o script, polo que se evita invocar por accidente o pip doutra instalación desde PATH.
Cada argumento ocupa un elemento de lista separado. Non se necesita ningún shell, e o URL do proxy non require un par adicional de comiñas de shell incorporadas. check=True xera CalledProcessError se a instalación falla, o que permite ao fluxo de aprovisionamento xestionar ese fallo.
Configure a ruta de descarga nesta invocación de pip ou na contorna do seu subprocess. Unha sesión de Requests configurada noutro lugar do programa pai non configura o proceso separado de pip.
Tras a instalación, continúe o ciclo de vida normal da contorna da aplicación. Instalar nun intérprete que xa se está executando non garante que as súas importacións, cachés ou rutas actuais reflictan de inmediato o paquete novo.