Када постојећа скрипта за провизионирање мора да покрене 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-а.

Након инсталације наставите уобичајени животни циклус окружења апликације. Инсталација у интерпретатор који већ ради не гарантује да његови тренутни увози, кешеви или путање одмах одражавају нови пакет.

Повезани чланци