Opa, obrigado pela dúvida. Acho ela muito importante.
Creio que eu não tenha sido tão claro quanto eu queria na sessão "persistindo o ambiente". A resposta deveria estar lá.
Seguindo o fluxo de trabalho:
-> Você (dev a). Criou o ambiente, instalou as bibliotecas, desenvolvou a primeira feature e atualizou o requirements.txt para enfim commitar suas alterações. -> O requirements.txt precisa estar no repositório Git também. Assim ele pode ser commitado e "pushado" para o repositório remoto.
-> O dev b vai fazer o clone do projeto com o requirements.txt incluso
-> Ele cria o env local, realiza a instalação das bibliotecas com pip install -r requirements.txt
e pode começar a trabalhar.
-> Se ele instalar novas bibliotecas no caminho, é dever dele atualizar o requirements.txt com pip freeze > requirements.txt
e commitar o arquivo de requerimentos junto com as demais alterações no código.
Note que isso envolve um grau de responsabilidade para ambos os desenvolvedores, que devem sempre estar atualizando o arquivo de requerimentos.
Quando o número de contribuintes aumenta, aumenta também os pontos de falha para essa metodologia.
Por isso que usar somente o venv para projetos de grande porte já não é mais recomendado.
Eu espero escrever futuramente um artigo sobre o poetry, que é um gerenciador tanto de pacotes quanto de dependências do Python que busca resolver muitos problemas que o pip + ambientes virtuais não conseguem. Ainda estou estudando ele para me sentir confiante em escrever sobre haha.
Espero ter tirado sua dúvida! 😁
Perfeita pergunta e resposta. No ubuntu 23.04 ficou um pouco mais confuso: https://www.omgubuntu.co.uk/2023/04/pip-install-error-externally-managed-environment-fix
Obrigado pela atenção, Lucas!
A dúvida era genuína, e vi que já estava fazendo errado: pensei que, uma vez feito o clone pelo dev-b, bastaria ele ativar o ambiente e fim da história.
Novamente: parabéns pelo post! :)