Posredujte proxy procesu pip, ki ga zaženete
Pokličite pip prek predvidenega tolmača Python in podajte --proxy kot ločen argument subprocessa, namesto da bi uvažali notranjost pip.
Ko mora obstoječa skripta za pripravo okolja zagnati pip prek proxyja, zaženite pip kot subprocess. Notranje funkcije Pythona v pip niso podprt aplikacijski API.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Uporabite predvideni paket in končno točko proxyja. Za prenose javnih paketov, dovoljene prek javnega posrednika, seznam proxyjev HTTP ponuja kandidate za argument proxyja HTTP. sys.executable izbere tolmač Python, ki izvaja skripto, zato se izogne nenamernemu klicu pip druge namestitve iz PATH.
Vsak argument zasede ločen element seznama. Lupina ni potrebna in URL proxyja ne potrebuje dodatnega para vdelanih narekovajev lupine. check=True sproži CalledProcessError, če namestitev ne uspe, kar omogoči poteku priprave, da to napako obdela.
Konfigurirajte pot prenosa pri tem klicu pip ali v okolju njegovega subprocessa. Seja Requests, konfigurirana drugje v nadrejenem programu, ne konfigurira ločenega procesa pip.
Po namestitvi nadaljujte običajni življenjski cikel okolja aplikacije. Namestitev v tolmač, ki že teče, ne zagotavlja, da njegovi trenutni uvozi, predpomnilniki ali poti takoj odražajo novi paket.