O Que É o virtualenv? Ambientes Virtuais Python Explicados
O virtualenv cria um ambiente Python isolado com seus próprios pacotes, para que um projeto não quebre outro ao compartilhar um conjunto global de dependências.
Um ambiente virtual dá a um projeto Python seu próprio conjunto privado de pacotes instalados, separado do Python do sistema e de outros projetos. O virtualenv é a ferramenta original para isso, e o módulo "venv" da biblioteca padrão é seu primo embutido. De qualquer forma, o isolamento é o que impede que as dependências colidam.
O que é o virtualenv
O virtualenv é uma ferramenta que cria um diretório autocontido contendo um link para o interpretador Python e um site-packages privado. Quando você o ativa, "python" e "pip" apontam para esse ambiente, então os installs vão para lá em vez de poluir o Python global. O embutido "python -m venv" fornece a mesma capacidade central.
Como o isolamento funciona
Ativar um ambiente ajusta o PATH do seu shell para que os binários do ambiente venham primeiro. O pip então instala no site-packages do ambiente. Como cada projeto tem seu próprio ambiente, o Projeto A pode usar requests 2.31 enquanto o Projeto B usa 2.20 sem conflito. Desativar restaura seu PATH normal.
Um exemplo de uso
Crie, ative, instale e então trabalhe dentro do ambiente.
# create and activate (built-in venv)
python -m venv .venv
source .venv/bin/activate
# install into the isolated environment
pip install -r requirements.txtPapel no CI/CD
No CI, um ambiente virtual novo por job garante um conjunto de dependências limpo e reproduzível, sem pacotes globais remanescentes. Muitos pipelines criam um venv, instalam requisitos fixados e então rodam os testes dentro dele. Fazer cache do venv ou do cache de download do pip entre execuções acelera installs repetidos enquanto preserva o isolamento.
Alternativas
O venv embutido cobre a maioria das necessidades sem uma instalação extra. O Conda gerencia ambientes e dependências binárias para stacks de ciência de dados. O Poetry e o uv criam e gerenciam ambientes para você como parte de um fluxo de trabalho maior. O próprio virtualenv adiciona alguns recursos sobre o venv, como criação mais rápida e suporte a interpretadores mais amplo.
Principais conclusões
- O virtualenv isola os pacotes Python de um projeto da instalação global.
- A ativação ajusta o PATH para que o pip e o python apontem para o ambiente.
- Um venv novo por job de CI dá conjuntos de dependências limpos e reproduzíveis.