Virtual Environments & Packages
ပြဿနာဆိုတာ ဘာလဲ?
Section titled “ပြဿနာဆိုတာ ဘာလဲ?”Package တွေကို pip install နဲ့ တိုက်ရိုက် Install လုပ်လိုက်ရင် System Python ထဲကို သွားဝင်သွားပါတယ်။ ဒါဆိုရင် ဘာဖြစ်မလဲ:
- Project A မှာ
requestsversion 2.28 ကို လိုချင်တယ် - Project B မှာ
requestsversion 2.31 ကို လိုချင်တယ်
ဒါမျိုးဖြစ်ရင် System Python တစ်ခုတည်းမှာ နှစ်ခုလုံး ထည့်ထားလို့ မရပါဘူး — ဒါကို Dependency Conflict လို့ ခေါ်ပါတယ်။ ရန်ကုန်မှာ ဆိုင်နှစ်ဆိုင် ဖွင့်ထားတဲ့ ဆိုင်ရှင်တစ်ယောက်က ဆိုင်တစ်ဆိုင်မှာ “Halal ရိုးရိုး ရေ” လိုအပ်ပြီး အခြားဆိုင်မှာ “Halal Special ရေ” လိုသလိုမျိုးပေါ့ — တူညီတဲ့ Package ရဲ့ Version နှစ်မျိုးကို တပြိုင်နက်တည်း အသုံးပြုလို့ မရပါဘူး။
Virtual Environment (venv) ဆိုတာ Project တစ်ခုချင်းစီအတွက် သီးသန့် Python ပတ်ဝန်းကျင် ဖန်တီးပေးတဲ့ Tool ပါ။ ဒီ Folder လေးထဲမှာပဲ Packages တွေကို ထည့်ထားတာဖြစ်လို့ Project တစ်ခုနဲ့တစ်ခု ရောနှောသွားတာမျိုး မဖြစ်တော့ပါဘူး။
venv ဖန်တီးနည်း
Section titled “venv ဖန်တီးနည်း”Project Folder ထဲကို အရင်ရောက်အောင်သွားပြီးမှ Terminal မှာ ဒီ Command ကို Run ပေးပါ:
python -m venv .venv.venv ဆိုတာ venv Folder ရဲ့ နာမည်ပါ — . (ဒေါ့) နဲ့ စထားတာကြောင့် File Explorer မှာ Hidden ဖိုင်အနေနဲ့ နေပါလိမ့်မယ်။ env, venv, .env စသဖြင့် ကိုယ်ကြိုက်တဲ့နာမည် ပေးနိုင်ပါတယ်။
venv Activate လုပ်နည်း
Section titled “venv Activate လုပ်နည်း”venv ဆောက်ပြီးရုံနဲ့ မရသေးပါဘူး — Activate (ဖွင့်) ပေးမှသာ အသုံးပြုနိုင်မှာ ဖြစ်ပါတယ်:
Windows (Command Prompt / PowerShell):
.venv\Scripts\activateMac / Linux:
source .venv/bin/activateActivate လုပ်ပြီးသွားရင် Terminal ရဲ့ ရှေ့မှာ (.venv) ဆိုပြီး ပြပေးပါလိမ့်မယ်:
(.venv) C:\Users\Aung\my-project>ဒါလေးပြနေပြီဆိုရင် venv ထဲ ရောက်သွားပြီလို့ သိရပါမယ်။
Package တပ်ဆင်ခြင်း
Section titled “Package တပ်ဆင်ခြင်း”venv Activate လုပ်ပြီးသွားမှသာ pip install ကို သုံးပေးပါ:
pip install requestspip install pandaspip install django==4.2 # Version သတ်မှတ်ပြီး Install လုပ်ခြင်းဘာတွေ Install လုပ်ထားသလဲ စစ်ဆေးချင်ရင်:
pip listPackage Version---------- -------requests 2.31.0certifi 2023.7.22...requirements.txt — Project Dependencies မှတ်တမ်း
Section titled “requirements.txt — Project Dependencies မှတ်တမ်း”Project ကို GitHub ပေါ်တင်မယ် (သို့) တခြားလူတစ်ယောက်ကို ပေးမယ်ဆိုရင် Install လုပ်ထားတဲ့ Package တွေရဲ့ စာရင်း လိုအပ်ပါတယ်။ ဒီစာရင်းကို requirements.txt ဖိုင်မှာ သိမ်းထားလေ့ရှိပါတယ်:
# ကိုယ် Install လုပ်ထားတဲ့ Package တွေကို ဖိုင်ထဲ ထည့်သိမ်းခြင်းpip freeze > requirements.txtrequirements.txt ဖိုင်ကို ဖွင့်ကြည့်ရင် ဒီလိုမျိုး တွေ့ရပါမယ်:
certifi==2023.7.22charset-normalizer==3.3.2idna==3.4requests==2.31.0urllib3==2.0.7တစ်ယောက်ယောက်က ခင်ဗျားရဲ့ Project ကို ယူပြီး Package တွေ အကုန် Install လုပ်ချင်တယ်ဆိုရင်:
pip install -r requirements.txtvenv Deactivate လုပ်နည်း
Section titled “venv Deactivate လုပ်နည်း”venv ကနေ ပြန်ထွက်ချင်ရင်:
deactivateTerminal မှာ (.venv) ပျောက်သွားပြီဆိုရင် System Python ကို ပြန်သုံးနေပြီလို့ သိနိုင်ပါတယ်။
.gitignore မှာ venv ကို ဖယ်ထားခြင်း
Section titled “.gitignore မှာ venv ကို ဖယ်ထားခြင်း”venv Folder ဟာ Package တွေ အများကြီး ပါဝင်နေတာကြောင့် Git Repo ထဲကို မတင်သင့်ပါဘူး (File Size အရမ်း ကြီးသွားလို့ပါ)။ ဒါကြောင့် .gitignore ဖိုင်မှာ အောက်ပါအတိုင်း ထည့်ပေးပါ:
.venv/__pycache__/*.pycပုံမှန် Workflow — Project အသစ်တစ်ခု စတင်ချိန်
Section titled “ပုံမှန် Workflow — Project အသစ်တစ်ခု စတင်ချိန်”# ၁. Folder ဖန်တီးခြင်းmkdir my-projectcd my-project
# ၂. venv ဆောက်ခြင်းpython -m venv .venv
# ၃. Activate လုပ်ခြင်း (Windows အတွက် ဥပမာ).venv\Scripts\activate
# ၄. Package Install လုပ်ခြင်းpip install requests
# ၅. Code ရေးခြင်း (main.py ဖန်တီးပြီး ... စရေးပါမယ်)
# ၆. Requirements သိမ်းဆည်းခြင်း (Project ပြီးရင် သို့မဟုတ် Git Push မလုပ်ခင်)pip freeze > requirements.txt