Skip to content
Latchkey

pip vs uv: installs de Python mais rápidos no CI?

O uv (da Astral) reimplementa o workflow do pip em Rust, e no CI a diferença de velocidade de install é difícil de ignorar.

O pip é o instalador padrão do Python que vem com o Python. O uv é uma ferramenta baseada em Rust que oferece um instalador rápido e compatível com o pip, além de gerenciamento de projeto, lockfile e versão do Python.

pipuv
ImplementaçãoPythonRust
Velocidade de installBaselineMuito mais rápido (frequentemente 10x+)
ResolverBacktrackingResolver rápido
LockfileNenhum nativo (pip-tools)uv.lock (modo projeto)
Gerenciamento de versão do PythonNãoSim (pode instalar Pythons)

No CI

O uv instala e resolve dependências muito mais rápido que o pip, encurtando a parte mais lenta de muitos pipelines de Python, e pode instalar o próprio interpretador Python para remover uma etapa de setup. O uv também oferece uma interface pip drop-in (uv pip install) para você adotá-lo por velocidade sem mudar o layout do seu projeto. O pip continua sendo o padrão universal que toda ferramenta documenta.

Faça cache de qualquer forma

Faça cache do cache de wheel/download chaveado no lock de requirements. Ambos rodam em runners de CI padrão; se os installs dominam o tempo do seu job, o uv mais runners gerenciados mais rápidos é a alavanca maior.

O veredito

Quer os installs mais rápidos e gerenciamento opcional do Python: uv (sua interface pip facilita a adoção). Quer o padrão universal e sem dependências: pip. Teste a resolução se você tiver constraints complexas antes de trocar.

Guias relacionados