Videresend proxyen til pip-prosessen du starter
Kall pip gjennom den tiltenkte Python-tolken og oppgi --proxy som et eget subprocess-argument i stedet for å importere pip sine interne deler.
Når et eksisterende provisioning-skript må kjøre pip gjennom en proxy, start pip som en subprocess. pip sine interne Python-funksjoner er ikke et støttet applikasjons-API.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Bruk den tiltenkte pakken og proxy-endepunktet. For nedlastinger av offentlige pakker som er tillatt gjennom en offentlig mellommann, leverer HTTP-proxylisten kandidater til HTTP-proxy-argumentet. sys.executable velger Python-tolken som kjører skriptet, så dette unngår å kalle en annen installasjons pip fra PATH ved et uhell.
Hvert argument opptar et eget listeelement. Det trengs ingen shell, og proxy-URL-en trenger ikke et ekstra par innebygde shell-anførselstegn. check=True utløser CalledProcessError hvis installasjonen mislykkes, slik at provisioning-arbeidsflyten kan håndtere den feilen.
Konfigurer nedlastingsruten på dette pip-kallet eller i subprocess-miljøet dets. En Requests-økt som er konfigurert andre steder i foreldreprogrammet, konfigurerer ikke pip sin separate prosess.
Etter installasjonen fortsetter du applikasjonens normale miljølivssyklus. Å installere i en tolk som allerede kjører, garanterer ikke at dens nåværende importer, cacher eller stier umiddelbart gjenspeiler den nye pakken.