Предадете го проксито на pip процесот што го стартувате
Повикајте pip преку предвидениот Python интерпретатор и доставете --proxy како посебен subprocess аргумент наместо да ги увезувате внатрешноста на pip.
Кога постоечка скрипта за провизионирање треба да го изврши pip преку прокси, стартувајте го pip како subprocess. Внатрешните Python функции на pip не се поддржано 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 интерпретаторот што ја извршува скриптата, па така се избегнува случајно повикување на pip од друга инсталација од PATH.
Секој аргумент зазема посебен елемент од списокот. Не е потребна обвивка и URL-то на проксито не бара дополнителен пар вградени наводници за обвивка. check=True подига CalledProcessError ако инсталацијата не успее, што му овозможува на работниот тек за провизионирање да го обработи тој неуспех.
Конфигурирајте ја патеката за преземање на ова повикување на pip или во околината на неговиот subprocess. Сесија на Requests конфигурирана на друго место во родителската програма не го конфигурира одделниот процес на pip.
По инсталацијата, продолжете со нормалниот животен циклус на околината на апликацијата. Инсталирањето во интерпретатор што веќе работи не гарантира дека неговите тековни увози, кеширања или патеки веднаш ќе го одразуваат новиот пакет.