Передайте прокси процессу 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.
После установки продолжайте обычный жизненный цикл окружения приложения. Установка в уже работающий интерпретатор не гарантирует, что его текущие импорты, кэши или пути сразу отражают новый пакет.