Porque não foi criado ou ao menos falado sobre o arquivo requeriments.tx e dos seus benefícios ou não?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Porque não foi criado ou ao menos falado sobre o arquivo requeriments.tx e dos seus benefícios ou não?
Oii Josimar, como você está? Espero que esteja bem ^-^
Infelizmente não sei te dizer o motivo do instrutor não ter abordado sobre esse assunto, mas falando um pouquinho do arquivo requirements.txt, ele serve para replicarmos o nosso ambiente de desenvolvimento em outra máquina ou até mesmo em outra pasta. Não é comum compartilharmos o projeto com a pasta "venv" que se refere ao ambiente virtual, pois essa pasta contém informações sobre as bibliotecas de dentro do nosso próprio ambiente e a estrutura dela varia de acordo com o sistema operacional. Então, ao invés de compartilharmos junto ao projeto a pasta "venv", compartilhamos junto ao projeto o arquivo requirements.txt.
Mas o que é esse arquivo?
Esse arquivo contém os nomes das bibliotecas e suas respectivas versões que estão instaladas em nosso projeto. Um exemplo de requirements.txt:
asgiref==3.3.4
beautifulsoup4==4.8.2
Django==3.2.3
urllib3==1.25.8Ele é importante por agilizar a instalação das bibliotecas em outra máquina, fazendo a instalação de todas as dependências de forma automática.
Imagina que você receba um projeto que dependa de 5 bibliotecas e você terá que instalar uma a uma em seu computador através do comando pip install. Para 5 bibliotecas, executar manualmente o pip install não demanda tanto tempo, mas imagine para um projeto que contém 50 dependências... É isso que o requirements.txt resolve, pois através dele com um único comando todas as bibliotecas serão instaladas automaticamente. O comando é:
pip install -r requirements.txtA flag -r significa read, ou seja, o comando pip irá ler o arquivo requirements.txt e instalar tudo que existe dentro dele.
Agora que sabemos o que é esse arquivo e sua importância, como podemos criá-lo?
Para criar um arquivo requirements.txt precisamos digitar o seguinte comando:
pip freeze > requirements.txtO comando pip freeze serve para listarmos os pacotes instalados no ambiente e suas respectivas versões. Através do símbolo > direcionamos a saída desse comando para o arquivo requirements.txt.
Uma das desvantagens de gerar o arquivo dessa forma é que o arquivo requirements.txt pode ficar com excesso de informações, uma vez que ao utilizarmos o comando pip freeze ele irá listar as bibliotecas instaladas e também, as dependências da biblioteca. Por exemplo, suponha que para o Django ser instalado, ele dependa de outras bibliotecas, como a asgiref e a urllib3 , então no nosso requirements também terão essas bibliotecas que são dependências da nossa biblioteca principal e isso é ruim porque se torna difícil abrir o arquivo requirements.txt e analisar quais são as bibliotecas principais que estamos utilizando.
Além disso, o comando pip freeze inclui pacotes específicos do sistema operacional, o que pode dificultar usuários de Linux, Mac e Windows replicar o mesmo arquivo requirements.txt para a instalação dos pacotes.
Uma solução para isso é criar o arquivo requirements.txt a mão, escrevendo o nome das bibliotecas principais no arquivo. Um detalhe é que não precisamos necessariamente colocar a versão da biblioteca nesse arquivo, pois, caso não haja especificação, a mais atual será baixada e para alguns projetos a versão não terá impacto.
No entanto, é muito comum o uso do pip freeze > requirements.txt, mas particularmente, eu recomendo que caso tenha possibilidade de fazê-lo manualmente adicionando cada pacote e suas versões, faça.
Qualquer dúvida estou por aqui.
Abraços!