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

   By: Withoutcoffee Icantbedev

   อัปเดตล่าสุด Nov. 18, 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 ให้เราไม่ต้องปวดหัวในภายหลัง

โดยปกติเราก็จะ freeze พวก libraries ต่าง ๆ  ไว้ในไฟล์ requirements.txt


นี่แหละครับ พอเรานำไปแชร์ให้เพื่อน ก็จัดการ install ผ่านไฟล์นี้ด้วยคำสั่ง pip install -r requirements.txt  ตัว libs ต่าง ๆ ก็จะถูกติดตั้งรวดเดียวจบ เพราะถูกลิสต์ไว้ในนี้หมดแล้ว


บทความแนะนำ: 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 ด้วย online courses ที่จะพาคุณอัพสกิลและพัฒนาสู่การเป็นมืออาชีพ เรียนออนไลน์ เรียนจากที่ไหนก็ได้ พร้อมซัพพอร์ตหลังเรียน

เรียนเขียนโปรแกรม

คอร์สเรียนแนะนำ

พัฒนาเว็บไซต์ด้วย Django Python

คอร์สอบรม เรียนทำเว็บ ด้วย Django สุดยอด web framework อันดับ 1 ที่ได้รับ…

Full Stack Developer 2024

คอร์สเรียน Full Stack Developer 2024 ด้วยเฟรมเวิร์คยอดนิยมในการพัฒนา A…