Kapag kailangang patakbuhin ng umiiral na provisioning script ang pip sa pamamagitan ng proxy, ilunsad ang pip bilang subprocess. Ang mga panloob na Python function ng pip ay hindi sinusuportahang application API.

import subprocess
import sys

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

Gamitin ang nilalayong package at proxy endpoint. Para sa mga pag-download ng pampublikong package na pinapayagan sa pamamagitan ng pampublikong tagapamagitan, ang listahan ng HTTP proxy ay nagbibigay ng mga kandidato para sa HTTP proxy argument. Pinipili ng sys.executable ang Python interpreter na nagpapatakbo ng script, kaya iniiwasan nitong tawagin nang aksidente ang pip ng ibang installation mula sa PATH.

Bawat argument ay sumasakop sa hiwalay na elemento ng listahan. Walang kailangang shell, at ang proxy URL ay hindi nangangailangan ng karagdagang pares ng naka-embed na shell quotes. Nagtataas ang check=True ng CalledProcessError kung mabigo ang pag-install, na nagpapahintulot sa provisioning workflow na hawakan ang kabiguang iyon.

I-configure ang ruta ng pag-download sa pagtawag na ito ng pip o sa kapaligiran ng subprocess nito. Ang isang sesyon ng Requests na naka-configure sa ibang lugar sa parent program ay hindi nagko-configure ng hiwalay na proseso ng pip.

Pagkatapos ng pag-install, ipagpatuloy ang normal na lifecycle ng kapaligiran ng application. Ang pag-install sa isang interpreter na tumatakbo na ay hindi ginagarantiyahan na ang kasalukuyang mga import, cache o path nito ay agad na sumasalamin sa bagong package.

Kaugnay na mga artikulo