Parabéns pelo post, brother!

Uma dúvida honesta: suponha um projeto (1) armazenado em um repositório Git, (2) acessível e usado por outros colaboradores e (3) que tenha um ambiente virtual configurado; seria possível os devs (a) clonarem o repo, (b) ativarem a venv, (c) trabalharem na máquina local e (d) depois commitarem, sem que tenham problemas quanto às bibliotecas, não? Digo isso porque a venv é um aglomerado de arquivos, e como as mudanças são rastreadas ali pelo Git...

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
Realmente tem uns passos aí que parecem mais confusos. Muitas pessoas tem críticas em relação ao Ubuntu devido ao apt e seus problemas, como esse. Nunca tive isso com Fedora, que é o que eu uso principalmente, mas acho o Ubuntu excelente para quem tá começando com Linux. Obrigado por ter lido o tutorial :D
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! :)
Não há de que :) Eu imagino que com o Poetry seja mais ou menos por esse caminho de só ativar o ambiente, mas não tenho certeza. Recomendo você dar uma pesquisada.