~ / blog / python
16 set 2026python5 min de leitura

Por que todo projeto Python precisa de venv

Ambientes virtuais isolam dependências, evitam quebrar o sistema e tornam deploys reproduzíveis. Guia prático.

Pythonvenvpip

O problema

Instalar pacotes globalmente no Python do sistema é o caminho mais rápido para conflitos, upgrades quebrados e “funciona na minha máquina”. O venv resolve isso com três linhas.

Dois projetos pedem versões diferentes da mesma biblioteca. Sem isolamento, um sobrescreve o outro. Em servidores, o Python do SO é usado por ferramentas do próprio sistema — poluí-lo é risco operacional.

A solução em 30 segundos

python3 -m venv .venv
source .venv/bin/activate   # Linux/macOS
pip install -r requirements.txt

No Windows PowerShell: .venv\Scripts\Activate.ps1.

Boas práticas

  • Sempre pin versions no requirements.txt (pip freeze)
  • Coloque .venv/ no .gitignore
  • Em Docker, o próprio container já isola — ainda assim use venv se preferir
  • Documente no README o comando de ativação

Quer ir além?

Isso é só o começo do nosso curso Automações em Python — módulo 1 cobre setup completo e o primeiro script de produção.

Comandos explicados

ComandoO que faz
python3 -m venv .venvCria o ambiente isolado na pasta .venv. O -m venv executa o módulo venv do Python.
source .venv/bin/activateAtiva o ambiente no Linux e no macOS. A partir daí, python e pip apontam para o .venv.
.venv\Scripts\Activate.ps1Faz o mesmo no PowerShell do Windows.
pip install -r requirements.txtInstala os pacotes listados no arquivo de dependências.
pip freeze > requirements.txtGrava as versões instaladas no requirements.txt, para reproduzir o ambiente depois.
deactivateSai do ambiente virtual.

Exemplo: como saber se o venv está ativo

$ which python
/usr/bin/python
$ source .venv/bin/activate
(.venv) $ which python
/home/usuario/projeto/.venv/bin/python

O (.venv) no início do prompt e o caminho de which python apontando para dentro do projeto mostram que o ambiente está ativo. Se o prompt não mostra o nome, os pacotes estão indo para o Python do sistema.

Erros comuns e como resolver

MensagemCausa provávelSolução
ensurepip is not availableNo Debian e no Ubuntu, o suporte a venv vem em um pacote separado.Instale com sudo apt install python3-venv.
externally-managed-environmentO sistema protege o Python global, e o pip install foi feito fora de um venv.Crie e ative um venv, e instale os pacotes nele.
O PowerShell diz que a execução de scripts está desabilitadaA política de execução do Windows bloqueia o Activate.ps1.Libere para o seu usuário com Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.
Um pacote instalado "não aparece" no projetoA instalação foi feita fora do venv.Ative o ambiente e confira com pip list.

Quer aplicar isso ao seu contexto?

Se esse problema existe na sua operação, podemos analisar o cenário em um diagnóstico gratuito de 30 minutos.

solicitar diagnóstico gratuito →

Leia também