Mavjud provisioning skripti pip ni proksi orqali ishga tushirishi kerak boʻlsa, pip ni subprocess sifatida ishga tushiring. pip ning ichki Python funksiyalari qoʻllab-quvvatlanadigan ilova API si emas.

import subprocess
import sys

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

Moʻljallangan paket va proksi soʻnggi nuqtasidan foydalaning. Ommaviy vositachi orqali ruxsat etilgan ommaviy paket yuklab olishlari uchun HTTP proksi roʻyxati HTTP proksi argumenti uchun nomzodlar taqdim etadi. sys.executable skriptni ishga tushirayotgan Python interpretatorini tanlaydi, shu sababli PATH dan boshqa oʻrnatishning pip ni tasodifan chaqirishdan saqlanadi.

Har bir argument alohida roʻyxat elementini egallaydi. Shell talab qilinmaydi va proksi URL qoʻshimcha juft ichki shell qoʻshtirnoqlarini talab qilmaydi. check=True oʻrnatish muvaffaqiyatsiz boʻlsa CalledProcessError koʻtaradi, bu provisioning ish oqimiga oʻsha xatoni boshqarish imkonini beradi.

Yuklab olish yoʻlini ushbu pip chaqiruvida yoki uning subprocess muhitida sozlang. Asosiy dasturning boshqa joyida sozlangan Requests sessiyasi pip ning alohida jarayonini sozlamaydi.

Oʻrnatishdan soʻng ilovaning odatdagi muhit hayot sikli davom eting. Allaqachon ishlab turgan interpretatorga oʻrnatish uning joriy importlari, keshlari yoki yoʻllari yangi paketni darhol aks ettirishiga kafolat bermaydi.

O'xshash maqolalar