Одоо байгаа provisioning скрипт pip-ийг проксигоор ажиллуулах шаардлагатай бол pip-ийг subprocess болгон эхлүүлнэ үү. pip-ийн дотоод Python функцууд нь дэмжигдсэн програмын API биш.

import subprocess
import sys

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

Зориулалтын багц болон проксигийн төгсгөлийн цэгийг ашиглана уу. Нийтийн зуучлагчаар зөвшөөрөгдсөн нийтийн багцын татах үед HTTP прокси жагсаалт нь HTTP прокси аргументэд нэр дэвшигчдийг санал болгодог. sys.executable скриптийг ажиллуулж буй Python интерпретаторыг сонгодог тул PATH-аас өөр суулгацын pip-г санамсаргүйгээр дуудахаас зайлсхийнэ.

Аргумент бүр тусдаа жагсаалтын элемент эзэлнэ. Shell шаардлагагүй бөгөөд прокси URL-д нэмэлт хос шигтгэсэн shell хашилт шаардлагагүй. check=True суулгалт амжилтгүй болвол CalledProcessError гаргадаг бөгөөд ингэснээр provisioning ажлын урсгал тэр алдааг шийдвэрлэх боломжтой болно.

Татах замыг энэ pip дуудлага дээр эсвэл түүний subprocess орчинд тохируулна уу. Эх програмын өөр газар тохируулсан Requests сесс pip-ийн тусдаа процессыг тохируулдаггүй.

Суулгасны дараа програмын ердийн орчны амьдралын мөчлөгийг үргэлжлүүлнэ үү. Аль хэдийн ажиллаж буй интерпретаторт суулгах нь түүний одоогийн импорт, кэш эсвэл замууд шинэ багцыг тэр даруй тусгана гэдгийг баталгаажуулдаггүй.

Холбоотой нийтлэлүүд