Um ambiente virtual é um ambiente Python isolado com seus próprios pacotes instalados, separado do Python do sistema e de outros projetos. Ele resolve conflitos de dependência — diferentes projetos podem usar versões diferentes (até mesmo incompatíveis) do mesmo pacote.
O problema que ele resolve
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.
Sem isolamento, instalar pacotes globalmente leva a conflitos de versão entre projetos e pode quebrar ferramentas do sistema que dependem de versões específicas.
