Odovzdajte proxy procesu pip, ktorý spúšťate
Vyvolajte pip cez zamýšľaný interpret Pythonu a odovzdajte --proxy ako samostatný argument subprocessu namiesto importovania vnútorností pip.
Keď existujúci provisioningový skript potrebuje spustiť pip cez proxy, spustite pip ako subprocess. Vnútorné funkcie Pythonu v pip nie sú podporované API aplikácie.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Použite zamýšľaný balík a koncový bod proxy. Pre sťahovanie verejných balíkov povolené cez verejného sprostredkovateľa ponúka zoznam HTTP proxy kandidátov pre argument HTTP proxy. sys.executable vyberá interpret Pythonu, ktorý skript spúšťa, takže sa vyhnete náhodnému vyvolaniu pip inej inštalácie z PATH.
Každý argument zaberá samostatný prvok zoznamu. Shell nie je potrebný a URL proxy nevyžaduje ďalší pár vložených úvodzoviek shellu. check=True vyvolá CalledProcessError, ak inštalácia zlyhá, čo provisioningovému pracovnému postupu umožní túto chybu ošetriť.
Nakonfigurujte cestu sťahovania v tomto volaní pip alebo v prostredí jeho subprocessu. Relácia Requests nakonfigurovaná inde v nadradenom programe nenakonfiguruje samostatný proces pip.
Po inštalácii pokračujte bežným životným cyklom prostredia aplikácie. Inštalácia do interpretu, ktorý už beží, nezaručuje, že jeho aktuálne importy, vyrovnávacie pamäte alebo cesty okamžite odrážajú nový balík.