Perduokite tarpinį serverį pip procesui, kurį paleidžiate
Iškvieskite pip per numatytą Python interpretatorių ir pateikite --proxy kaip atskirą subprocess argumentą, o ne importuokite pip vidinius komponentus.
Kai esamas providinimo scenarijus turi paleisti pip per tarpinį serverį, paleiskite pip kaip subprocess. Vidinės pip Python funkcijos nėra palaikoma programos API.
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Naudokite numatytą paketą ir tarpinio serverio galinį tašką. Viešų paketų atsisiuntimams, leidžiamiems per viešą tarpininką, HTTP tarpinių serverių sąrašas siūlo kandidatus HTTP tarpinio serverio argumentui. sys.executable pasirenka Python interpretatorių, vykdantį scenarijų, todėl išvengiama atsitiktinio kitos instalacijos pip iškvietimo iš PATH.
Kiekvienas argumentas užima atskirą sąrašo elementą. Shell nereikia, o tarpinio serverio URL nereikalauja papildomos įterptų shell kabučių poros. check=True iškelia CalledProcessError, jei diegimas nepavyksta, todėl providinimo darbo eiga gali apdoroti tą klaidą.
Konfigūruokite atsisiuntimo maršrutą šiame pip iškvietime arba jo subprocess aplinkoje. Requests sesija, sukonfigūruota kitur pagrindinėje programoje, nesukonfigūruoja atskiro pip proceso.
Po diegimo tęskite įprastą programos aplinkos gyvavimo ciklą. Diegimas į jau veikiantį interpretatorių negarantuoja, kad jo dabartiniai importai, talpyklos ar keliai iš karto atspindės naują paketą.