Estou usando pip com virtualenv para empacotar e instalar algumas bibliotecas Python.
Eu imagino que o que estou fazendo é um cenário bastante comum. Sou o mantenedor de várias bibliotecas para as quais posso especificar as dependências explicitamente. Algumas de minhas bibliotecas dependem de bibliotecas de terceiros que possuem dependências transitivas sobre as quais não tenho controle.
O que estou tentando fazer é que uma pip install
de minhas bibliotecas baixe / instale todas as suas dependências upstream. O que estou lutando com a documentação do pip é se / como os arquivos de requisitos podem fazer isso por conta própria ou se eles são realmente apenas um suplemento para usar install_requires
.
Eu usaria install_requires
em todas as minhas bibliotecas para especificar dependências e intervalos de versão e, em seguida, usaria apenas um arquivo de requisitos para resolver um conflito e / ou congelá-los para uma compilação de produção?
Vamos fingir que vivo em um mundo imaginário (eu sei, eu sei) e minhas dependências upstream são diretas e garantidas para nunca entrar em conflito ou quebrar a compatibilidade com versões anteriores. Eu seria compelido a usar um arquivo de requisitos do pip ou apenas deixar que o pip / setuptools / distribua instale tudo com base nele install_requires
?
Há muitas perguntas semelhantes aqui, mas não consegui encontrar nenhuma que fosse tão básica quanto quando usar um ou outro ou usar os dois juntos harmoniosamente.