Skip to content
Latchkey

pip vs Poetry: Qual Ferramenta de Dependências Python para CI?

No CI, a diferença entre pip e Poetry é na verdade a diferença entre instalações ad-hoc e um lockfile commitado.

Ambos instalam dependências Python, mas o Poetry adiciona um modelo de projeto e um lockfile de verdade, enquanto o pip permanece minimalista e ubíquo.

pipPoetry
LockfileNenhum nativo (use pip-tools / requirements.txt)poetry.lock (embutido)
Instalações reprodutíveisSó se você fixar tudoSim, a partir do lock
Resolvedor de dependênciasBásico (backtracking, melhorando)Resolvedor completo
Instalação em CIpip install -r requirements.txtpoetry install --no-root
Chave de cacheHash do requirements.txtHash do poetry.lock

Para CI especificamente

O Poetry dá a você um build determinístico de imediato: comite o poetry.lock e cada execução instala as mesmas versões. O pip puro com um requirements.txt não fixado deriva com o tempo e causa falhas de CI do tipo "funciona na minha máquina". O pip ainda é a opção mais leve e a escolha certa para scripts simples ou quando uma ferramenta só documenta o pip.

Faça cache da coisa certa

Baseie a chave do seu cache de dependências no lockfile (poetry.lock) ou no requirements.txt fixado, e faça cache dos virtualenvs do Poetry ou do wheel cache do pip. O caching importa mais para o tempo de wall-clock do que qual ferramenta você escolhe.

O veredito

Quer builds reprodutíveis com esforço mínimo: Poetry. Quer a ferramenta mais leve e universal para projetos simples: pip com requirements totalmente fixados. De qualquer forma, comite o lockfile e faça cache dele.

Guias relacionados