Amikor egy meglévő provisioning-szkriptnek proxyn keresztül kell futtatnia a pipet, indítsa el a pipet subprocessként. A pip belső Python-függvényei nem támogatott alkalmazás-API-k.

import subprocess
import sys

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

Használja a szándékolt csomagot és proxy-végpontot. A nyilvános közvetítőn keresztül engedélyezett nyilvános csomagletöltésekhez a HTTP-proxylista jelölteket kínál a HTTP-proxy argumentumhoz. A sys.executable kiválasztja a szkriptet futtató Python-értelmezőt, így elkerülhető, hogy véletlenül egy másik telepítés pip parancsa legyen meghívva a PATH-ból.

Minden argumentum külön listaelemet foglal el. Nincs szükség shellre, és a proxy URL nem igényel további pár beágyazott shell-idézőjelet. A check=True CalledProcessError kivételt dob, ha a telepítés meghiúsul, így a provisioning-munkafolyamat kezelheti ezt a hibát.

A letöltési útvonalat ezen a pip-híváson vagy annak subprocess-környezetében állítsa be. A szülőprogram más helyén beállított Requests-munkamenet nem állítja be a pip külön folyamatát.

A telepítés után folytassa az alkalmazás szokásos környezeti életciklusát. Egy már futó értelmezőbe történő telepítés nem garantálja, hogy annak jelenlegi importjai, gyorsítótárai vagy útvonalai azonnal tükrözik az új csomagot.

Kapcsolódó cikkek