Un environnement virtuel est un environnement Python isolé avec ses propres paquets installés, distinct de Python système et d'autres projets. Il résout les conflits de dépendances — différents projets peuvent utiliser différentes versions (même incompatibles) d'un même paquet.
Le problème qu'il résout
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.
Sans isolation, installer des paquets globalement entraîne des conflits de version entre les projets et peut casser les outils système qui dépendent de versions spécifiques.
