ในการพัฒนาโปรแกรมด้วยภาษา python 3 นั้น เพื่อให้เราสามารถติดตั้ง library หรือ dependencies ได้หลากหลายเวอร์ชั่น เราสามารถใช้งานฟีเจอร์ virtual environment ที่ติดมาด้วย (built-in) ใน module venv เพื่อสร้าง virtual environment สำหรับใช้ในแต่ละโปรเจ็ค
ทำไมเราต้องใช้งาน virtual environment กัน ติดตั้งไปเลยไม่ได้เหรอ คำตอบคือได้ครับ ถ้าเราทำงานอยู่แค่โปรเจ็คเดียวหรือถ้ามีหลายโปรเจ็คและมีการใช้งาน library (dependencies) version เดียวกันอยู่
แต่เมื่อไหร่ก็ตามที่เราต้องการใช้งาน library คนละเวอร์ชันขึ้นมา เช่น project a ต้องการใช้งาน imooh-library v1.0.0 และ project b ต้องการใช้งาน imooh-library v2.0.0 เราจำเป็นต้องสร้าง virtual environment สำหรับ project a และ project b แยกกัน
เพื่อจะได้ติดตั้ง imooh-library คนละเวอร์ชันได้
การสร้าง virtual environment ด้วย module venv
ปกติแล้วผมจะสร้าง virtual environment ไว้ภายใต้ project folder ชื่อ .venv หรือ venv และเพิ่ม folder เหล่านี้เข้าไปใน .gitingore ไฟล์ด้วยจะได้ไม่เผลอ commit ไป
คำสั่งที่ใช้สร้าง virtual environment คือ
python3 -m venv .venv
จากนั้นก็เปิดใช้งาน virtual environment ด้วยคำสั่ง source comand-line
source .venv/bin/activate
ใช้คำสั่ง which เพื่อตรวจสอบว่าเปิดใช้งาน virtual environment ได้สำเร็จ หรือไม่
which python
output ของคำสั่ง which จะแสดง path ของ python interpreter ที่จะถูกใช้งาน
<project path>/.venv/bin/python
จากนั้นเราก็สามารถติดตั้ง library หรือ dependencies ต่างๆ ด้วยคำสั่ง pip ได้เลย
pip install library
pip install -r requirements.txt
ถ้าต้องการปิดการใช้งาน virtual environment ก็ให้ใช้คำสั่ง deactivate ครับ