Փոխանցեք պրոքսին ձեր գործարկած pip գործընթացին
Կանչեք pip-ը նախատեսված Python ինտերպրետատորի միջոցով և տրամադրեք --proxy-ն որպես առանձին subprocess արգումենտ՝ pip-ի ներքին մասերը ներմուծելու փոխարեն։
Երբ գոյություն ունեցող provisioning սկրիպտը պետք է pip-ը գործարկի պրոքսիի միջոցով, գործարկեք pip-ը որպես subprocess։ pip-ի ներքին Python ֆունկցիաները աջակցվող հավելվածի API չեն։
import subprocess
import sys
subprocess.run([
sys.executable,
'-m', 'pip', 'install',
'--proxy', 'http://proxy.example:8080',
'example-package',
], check=True)
Օգտագործեք նախատեսված փաթեթը և պրոքսիի վերջնակետը։ Հանրային միջնորդի միջոցով թույլատրված հանրային փաթեթների ներբեռնումների համար HTTP պրոքսիների ցանկը առաջարկում է թեկնածուներ HTTP պրոքսի արգումենտի համար։ sys.executable ընտրում է սկրիպտը գործարկող Python ինտերպրետատորը, այսպիսով խուսափում է PATH-ից այլ տեղադրման pip-ը պատահաբար կանչելուց։
Յուրաքանչյուր արգումենտ զբաղեցնում է ցանկի առանձին տարր։ Shell-ի կարիք չկա, և պրոքսիի URL-ը լրացուցիչ զույգ ներկառուցված shell չակերտներ չի պահանջում։ check=True բարձրացնում է CalledProcessError, եթե տեղադրումը ձախողվում է, ինչը թույլ է տալիս provisioning աշխատահոսքին մշակել այդ ձախողումը։
Կարգավորեք ներբեռնման ուղին այս pip կանչի կամ դրա subprocess միջավայրի վրա։ Ծնող ծրագրում այլ տեղ կարգավորված Requests սեսիան չի կարգավորում pip-ի առանձին գործընթացը։
Տեղադրումից հետո շարունակեք հավելվածի միջավայրի սովորական կենսացիկլը։ Արդեն աշխատող ինտերպրետատորի մեջ տեղադրելը չի երաշխավորում, որ նրա ընթացիկ ներմուծումները, քեշերը կամ ուղիները անմիջապես կարտացոլեն նոր փաթեթը։