ရှိပြီးသား 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 ၏ သီးခြားလုပ်ငန်းစဉ်ကို ပြင်ဆင်မပေးပါ။

တပ်ဆင်ပြီးနောက် အပလီကေးရှင်း၏ ပုံမှန် ပတ်ဝန်းကျင် သက်တမ်းစက်ဝန်းကို ဆက်လုပ်ပါ။ လုပ်ဆောင်နေပြီးသား အပြန်အလှန်ပြန်ဆိုသူထဲသို့ တပ်ဆင်ခြင်းသည် ၎င်း၏ လက်ရှိ တင်သွင်းမှုများ၊ ကက်ရှ်များ သို့မဟုတ် လမ်းကြောင်းများသည် ပက်ကေ့ချ်အသစ်ကို ချက်ချင်း ထင်ဟပ်စေမည်ဟု အာမမခံပါ။

ဆက်စပ်ဆောင်းပါးများ