การใช้งาน Python Virtual Environment (venv)

   By: Withoutcoffee Icantbedev

   อัปเดตล่าสุด Feb. 26, 2024

การใช้งาน Python Virtual Environment (venv)

Virtual Environment (venv) เป็นสิ่งที่แทบทุกคนต้องเจอเมื่อเริ่มต้นศึกษา Python หลายคนอาจจะยังไม่รู้ว่ามันคืออะไร สำคัญและประโยชน์ยังไง หรือแม้แต่จะใช้มันตอนไหน ? ในบทความนี้เราจะมาทำความเข้าใจเกี่ยวกับตัว Virtual Environment ในภาษาไพธอน พร้อมทั้งโครงสร้างและการใช้งาน ครบ จบในบทความเดียว


Virtual Environment (venv) คืออะไร?

Virtual Environment คือ คอนเซ็ปต์ของภาษาไพธอนในการจำลองสภาพแวดดล้อมที่จำเป็นในการรันโปรเจคท์ เช่น dependencies (โดย dependencies นี้จะหมายถึง packages, libraries, หรือแม้แต่ตัว Python Interpreter เอง) โดยให้เรามองว่า venv คือกล่องคอนเทนเนอร์ ๆ หนึ่ง เวลาเราติดตั้งไลบรารี่หรือแพ็คเกจต่าง ๆ ด้วยคำสั่ง pip install [PACKAGE-OR-LIBRARY_NAME] อะไรแบบนี้ตัวแพ็คเกจหรือไลบรารี่ก็จะถูกติดตั้งลงในกล่องนี้แทนที่จะถูกติดตั้งแบบ global  นั่นหมายความว่าในแต่ละโปรเจคท์ที่เราสร้างก็จะมี venv ของใครของมัน


ทำไม venv ถึงสำคัญ?

เวลาเราแชร์โปรเจคท์หรือนำไป deploy ก็จะง่ายต่อการจัดการ ไม่เกิดปัญหา เช่น ไลบรารี่ไม่ตรงกัน พอรันในเครื่องตัวเองรันได้ แต่พอแชร์ไปให้เพื่อนหรือนำไป deploy แล้วเวอร์ชั่นของ package หรือ library ไม่ตรงกันหรือไม่ compatible กัน เป็นต้น พูดง่าย ๆ venv จะช่วยจัดการ environment ให้เราไม่ต้องปวดหัวในภายหลัง

บทความแนะนำ: requirements.txt ไฟล์สำคัญที่ช่วยให้เรานำโปรเจคท์ Python ไปรันเครื่องอื่นได้ไม่มีปัญหา



สร้าง Virtual Environment

ก่อนที่จะสร้าง venv เราจำเป็นต้องสร้างโฟลเดอร์โปรเจคท์เราก่อนครับ จะสร้างไว้ใน Desktop หรือ Drive ไหนก็ได้ตามความเหมาะสมในการเก็บโปรเจคท์ จากนั้นให้เปิด Terminal (Mac/Linux) หรือ PowerShell/Command Prompt (Windows) ขึ้นมา

$ mkdir my_project
$ cd my_project


สร้าง venv (Windows)

$ python -m venv env


macOS/Linux

$ python3 -m venv env


Note: แพ็คเกจ  venv  นั้นจะถูกติดตั้งเป็น default มาให้แล้วสำหรับ Python เวอร์ชัน 3.3 ขึ้นไป ถึงจะสามารถใช้ได้ (ซึ่งตอนนี้ของเพื่อน ๆ ก็น่าจะเกิน v3.3 กันแล้วเนอะ) แต่ถ้าใครต่ำกว่า 3.3 ต้องใช้อีกตัวคือ virtualenv 


Activate Virtual Environment

เมื่อสร้าง venv เสร็จแล้ว ก็ต้องมีการ activate venv เพื่อเรียกใช้งานนั่นเอง

Activate venv สำหรับ Windows

$ env\Scripts\activate


Activate venv สำหรับ macOS/Linux

$ source env/bin/activate


เมื่อ activate สำเร็จจะได้


Windows

(env) PS C:Users\Son\my_project>


WinmacOS/Linux

(env) sonny@MB-sonny my_project %


เท่ากับว่าเราจะได้  (env) พร้อมใช้เรียบร้อย 


Deactivate Virtual Environment (ออกจาก venv)

เมื่อเรารู้วิธีการสร้างและ activate venv แล้ว ต่อมาก็ต้องรู้คำสั่งในการออกจาก venv หรือมักจะเรียกกันว่า  deactivate 

$ deactivate



เพียงเท่านี้ก็เป็นการออกจาก virtual environment แล้ว (สังเกตว่าเครื่องหมายวงเล็บจะหายไป)


จ้างโปรแกรมเมอร์หรือนักพัฒนาสำหรับโปรเจคท์ด้าน Software Development เช่น Website, Web App, Mobile App หรือสอนโค้ดดิ้ง คลาสอบรม?

เพิ่มเพื่อน LINE OA