Python Virtual Environment คืออะไร
Virtual Environment คือสภาพแวดล้อมที่แยก packages และ dependencies ไว้แยกจาก system Python และ environment อื่นๆ แต่ละโปรเจกต์ควรมี venv ของตัวเอง
ทำไมต้องใช้ Virtual Environment
- โปรเจกต์ต่างๆ ต้องการ version ของ library ต่างกัน
- กัน conflict ระหว่าง packages
- ควบคุม dependencies ได้ชัดเจน (requirements.txt)
- Deploy ได้ง่ายและ reproducible
วิธีสร้าง Virtual Environment
1. ใช้ venv (Built-in, Python 3.3+)
# สร้าง
python -m venv myenv
# เปิดใช้งาน (Activate)
# Windows
myenv\Scripts\activate
# Linux/macOS
source myenv/bin/activate
# ปิดใช้งาน
deactivate
2. ใช้ virtualenv (Third-party, รองรับ Python 2/3)
# ติดตั้ง
pip install virtualenv
# สร้าง
virtualenv myenv
# Activate เหมือน venv
3. ใช้ conda (Anaconda/Miniconda)
# สร้าง
conda create -n myenv python=3.9
# Activate
conda activate myenv
# Deactivate
conda deactivate
หลัง Activate แล้ว
- Prompt จะแสดง
(myenv)นำหน้า - ติดตั้ง packages ด้วย pip ปกติ จะอยู่ใน environment นี้
- export dependencies:
pip freeze > requirements.txt - ติดตั้งจาก requirements:
pip install -r requirements.txt
Best Practices
- สร้าง venv ใหม่สำหรับแต่ละโปรเจกต์
- เพิ่ม venv folder ใน .gitignore
- ใช้ requirements.txt หรือ pyproject.toml จัดการ dependencies
- พิจารณาใช้ tools อย่าง poetry, pipenv สำหรับ dependency management ขั้นสูง