Skip to content
Latchkey

pyenv vs conda: Gerenciando Versões do Python

pyenv instala e alterna entre versões do interpretador Python; conda gerencia ambientes inteiros incluindo o Python mais pacotes binários.

pyenv compila e seleciona versões do Python por projeto, deixando a instalação de pacotes para o pip ou outra ferramenta. conda agrupa seus próprios Pythons e um gerenciador de pacotes multilinguagem, então um único ambiente conda fixa tanto o interpretador quanto as dependências compiladas. pyenv é enxuto e só para Python; conda é mais pesado, mas resolve stacks de dependências nativas em um só lugar.

pyenvconda
GerenciaVersões do PythonVersões + pacotes
Método de instalaçãoCompila do código-fonteBinários pré-construídos
Deps não-PythonNãoSim
FootprintLeveMais pesado
Melhor paraVersionamento só de PythonAmbientes científicos completos

No CI

pyenv compila interpretadores do código-fonte, o que é lento em um runner frio a menos que o build seja cacheado; muitos setups de CI usam, em vez disso, o Python fornecido pelo runner ou o setup-python. conda puxa Pythons e pacotes pré-construídos, mas paga um custo de solver. Para uma única versão fixada, o Python fornecido pelo runner costuma ser o mais simples; conda se encaixa em stacks nativos pesados.

Acelere

Faça cache do interpretador compilado (pyenv) ou do package cache (conda) com chave nas suas versões fixadas. Ambos rodam em CI runners; runners gerenciados mais rápidos encurtam os passos de build e solve.

O veredito

Gerenciando apenas versões do Python em máquinas de dev: pyenv (ou setup-python no CI). Precisando de um ambiente completo com dependências nativas, não-Python, fixadas juntas: conda. Muitos times fixam o Python diretamente no CI e reservam o conda para stacks científicos.

Guias relacionados