virtual environment คือสภาพแวดล้อม Python ที่แยกอิสระ มี package ที่ติดตั้งไว้เป็นของตัวเอง แยกจาก Python ของระบบและจากโปรเจกต์อื่น ๆ มันช่วยแก้ปัญหา dependency ขัดแย้งกัน — โปรเจกต์ต่างกันสามารถใช้ package เวอร์ชันต่างกัน (แม้กระทั่งเวอร์ชันที่เข้ากันไม่ได้) ได้
ปัญหาที่มันแก้ไข
Project A needs Django 3.2
Project B needs Django 4.2
→ Installing globally, they CONFLICT — you can't have both versions system-wide.
Virtual environments give each project its OWN isolated set of packages.
หากไม่มีการแยกอิสระ การติดตั้ง package แบบ global จะนำไปสู่การปะทะกันของเวอร์ชันระหว่างโปรเจกต์ และอาจทำให้เครื่องมือของระบบที่พึ่งพาเวอร์ชันเฉพาะเสียหายได้
