Meta skript ta' provvediment eżistenti jkun jeħtieġ li jmexxi pip permezz ta' proxy, iniedi pip bħala subprocess. Il-funzjonijiet Python interni ta' pip mhumiex API tal-applikazzjoni appoġġjata.

import subprocess
import sys

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

Uża l-pakkett u l-punt tat-tmiem tal-proxy maħsuba. Għal tniżżil ta' pakketti pubbliċi permessi permezz ta' intermedjarju pubbliku, il-lista tal-proxy HTTP tipprovdi kandidati għall-argument tal-proxy HTTP. sys.executable jagħżel l-interpretatur Python li qed imexxi l-iskript, u b'hekk jiġi evitat li jissejjaħ b'aċċident il-pip ta' installazzjoni oħra mill-PATH.

Kull argument jokkupa element tal-lista separat. M'hemmx bżonn ta' shell, u l-URL tal-proxy m'għandux bżonn par addizzjonali ta' virgoletti tas-shell inkorporati. check=True iqajjem CalledProcessError jekk l-installazzjoni tfalli, u dan jippermetti lill-fluss tax-xogħol tal-provvediment jimmaniġġja dik il-falliment.

Ikkonfigura r-rotta tat-tniżżil fuq din is-sejħa pip jew fl-ambjent tas-subprocess tagħha. Sessjoni Requests ikkonfigurata band'oħra fil-programm prinċipali ma tikkonfigurax il-proċess separat ta' pip.

Wara l-installazzjoni, kompli ċ-ċiklu tal-ħajja normali tal-ambjent tal-applikazzjoni. L-installazzjoni f'interpretatur li diġà qed jaħdem ma tiggarantixxix li l-importazzjonijiet, il-caches jew il-passaġġi attwali tiegħu jirriflettu minnufih il-pakkett il-ġdid.

Artikli relatati