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 ရဲ့ နာမည်ပါ — . (ဒေါ့) နဲ့ စထားတာကြောင့် ဖိုင် 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