O poetry é sem dúvidas uma ótima escolha para grandes projetos, mas vale uma correção sobre o pip, principalmente em projetos legados e menores:
Em boa parte das vezes o desenvolvedor não adiciona cada pacote a mão, ele usa o comando "pip freeze --local > requirements.txt" que basicamente lista todas as dependências locais e gera um lock no arquivo com cada versão correspondente.