Skip to content
Latchkey

venv vs virtualenv: Qual Isolamento Python?

venv vem com a biblioteca padrão do Python; virtualenv é uma ferramenta de terceiros mais rápida e com mais recursos que também suporta Pythons mais antigos.

venv é embutido no Python 3.3+ e é a forma padrão de criar ambientes isolados sem instalação extra. virtualenv o antecede, cria ambientes mais rápido, suporta Python 2 e 3.x mais antigos, e oferece mais configuração e um sistema de plugins. Para projetos modernos em um único Python recente, venv é suficiente; virtualenv se justifica por velocidade, versões legadas ou recursos avançados.

venvvirtualenv
InclusoSim (stdlib)pip install
VelocidadeBoaCriação mais rápida
Versões do Python3.3+2.7 e 3.x
RecursosMínimosMais opções, plugins
Melhor paraVersão única modernaVelocidade, legado, uso avançado

No CI

venv não precisa de nada extra e funciona em todo lugar onde o Python moderno roda, então é a escolha de CI mais simples. virtualenv cria ambientes um pouco mais rápido e só é necessário se você mira Pythons antigos ou quer seus recursos extras. A maioria dos pipelines usa venv e nunca percebe a diferença.

Acelere

Faça cache da instalação de dependências (pip cache + lockfile) em vez do próprio diretório do ambiente. Qualquer uma das ferramentas roda em CI runners; runners gerenciados mais rápidos encurtam os passos de instalação e teste.

O veredito

Projetos modernos em um Python recente: venv, já que é embutido e não precisa de nada extra. virtualenv quando você precisa de criação mais rápida, suporte a Python 2 ou 3.x antigo, ou seu conjunto de recursos mais rico. Para a maioria dos times, venv é o padrão mais simples.

Guias relacionados