När ett befintligt provisioning-skript behöver köra pip via en proxy, starta pip som en subprocess. pips interna Python-funktioner är inte ett stödt applikations-API.

import subprocess
import sys

subprocess.run([
    sys.executable,
    '-m', 'pip', 'install',
    '--proxy', 'http://proxy.example:8080',
    'example-package',
], check=True)

Använd det avsedda paketet och proxy-slutpunkten. För nedladdningar av offentliga paket som tillåts via en offentlig mellanhand tillhandahåller HTTP-proxylistan kandidater för HTTP-proxyargumentet. sys.executable väljer den Python-tolk som kör skriptet, så detta undviker att av misstag anropa en annan installations pip från PATH.

Varje argument upptar ett separat listelement. Ingen shell behövs, och proxy-URL:en behöver inte ett extra par inbäddade shell-citattecken. check=True utlöser CalledProcessError om installationen misslyckas, vilket låter provisioning-arbetsflödet hantera det felet.

Konfigurera nedladdningsvägen på detta pip-anrop eller i dess subprocess-miljö. En Requests-session som konfigurerats någon annanstans i föräldraprogrammet konfigurerar inte pips separata process.

Efter installationen fortsätter du applikationens normala miljölivscykel. Att installera i en tolk som redan körs garanterar inte att dess nuvarande importer, cacheminnen eller sökvägar omedelbart återspeglar det nya paketet.

Relaterade artiklar