Transmiteți proxy-ul procesului pip pe care îl lansați
Apelați pip prin interpretorul Python dorit și furnizați --proxy ca argument subprocess separat în loc să importați interiorul pip.
Când un script de provisioning existent trebuie să ruleze pip printr-un proxy, lansați pip ca subprocess. Funcțiile Python interne ale pip nu sunt un API de aplicație acceptat.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Folosiți pachetul și punctul final de proxy dorite. Pentru descărcări de pachete publice permise printr-un intermediar public, lista de proxy HTTP oferă candidați pentru argumentul de proxy HTTP. sys.executable selectează interpretorul Python care rulează scriptul, astfel încât se evită apelarea accidentală a pip altei instalări din PATH.
Fiecare argument ocupă un element de listă separat. Nu este nevoie de shell, iar URL-ul proxy nu are nevoie de o pereche suplimentară de ghilimele de shell încorporate. check=True ridică CalledProcessError dacă instalarea eșuează, permițând fluxului de provisioning să gestioneze acea eroare.
Configurați ruta de descărcare la acest apel pip sau în mediul subprocessului său. O sesiune Requests configurată în altă parte în programul părinte nu configurează procesul pip separat.
După instalare, continuați ciclul de viață normal al mediului aplicației. Instalarea într-un interpretor care rulează deja nu garantează că importurile, cache-urile sau căile sale actuale reflectă imediat noul pachet.