pip vs conda: Qual Instalador Python no CI?
pip instala pacotes Python do PyPI em qualquer ambiente; conda gerencia ambientes completos incluindo o próprio Python e binários não-Python.
pip é o instalador Python padrão, puxando wheels e distribuições de código-fonte do PyPI para um venv que você cria. conda é um gerenciador de pacotes e ambientes multilinguagem que traz seu próprio Python mais bibliotecas compiladas (CUDA, MKL, GDAL), o que o torna popular em ciência de dados onde dependências nativas são dolorosas. pip é mais leve e onipresente; conda resolve os casos mais difíceis de dependências binárias.
| pip | conda | |
|---|---|---|
| Escopo | Pacotes Python (PyPI) | Qualquer pacote + o próprio Python |
| Deps não-Python | Manual / wheels | Embutido (binários) |
| Velocidade | Rápido | Solver mais lento |
| Reprodutibilidade | requirements / lock | environment.yml / lock |
| Melhor para | Maioria dos apps Python | Ciência de dados, deps nativas |
No CI
Instalações com pip são rápidas e cacheiam de forma limpa via o pip cache e um lockfile. Solves de ambiente conda podem ser lentos, então os times cacheiam o package cache ou mudam para o mamba para um solver mais rápido. Para trabalho web ou de biblioteca em Python puro, pip vence em velocidade; para stacks científicos pesados, conda economiza tempo lidando com builds nativos.
Acelere
Faça cache do package cache do pip ou conda com chave no lockfile para que as instalações estejam quentes. Ambos rodam em CI runners; runners gerenciados mais rápidos encurtam os passos de instalação e resolução de ambiente.
O veredito
Apps e bibliotecas Python padrão: pip com um venv. Stacks de ciência de dados com dependências nativas pesadas: conda (ou mamba para velocidade). Muitos times usam pip em todo lugar e recorrem ao conda apenas quando as dependências binárias ficam dolorosas.