การใช้งาน virtual environment สำหรับ python 3 ด้วย venv module

ในการพัฒนาโปรแกรมด้วยภาษา 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 ครับ