Trilha de aprendizado · Nível 5 · Tutorial 7

Recriar ambientes a partir de requirements.txt

Registrar as dependências de um ambiente dedicado ao projeto e usá-las para recriar e conferir outro ambiente, reconhecendo os limites dessa reprodução.

  • Nível: Intermediário
  • Duração: 18 min
  • 8 passos
Recriar ambientes a partir de requirements.txt

O que você vai percorrer

  1. Preparar uma origem dedicada ao projeto Crie um projeto mínimo em um ambiente virtual exclusivo e registre o resultado inicial do programa para comparações posteriores. 2 min
  2. Interpretar pacotes e versões no arquivo Leia requisitos com versões fixadas e reconheça por que dependências não importadas diretamente também podem aparecer no arquivo. 2 min
  3. Gerar e revisar o requirements.txt Capture os pacotes instalados no ambiente de origem, salve o inventário na pasta do projeto e revise as versões registradas. 3 min
  4. Instalar os requisitos em outro ambiente Crie um ambiente de destino separado e instale nele os requisitos registrados, mantendo o ambiente original intacto para comparação. 3 min
  5. Conferir dependências e funcionamento Compare as versões instaladas, verifique a consistência declarada das dependências e execute o programa no ambiente recriado. 3 min
  6. Registrar o contexto da reprodução Registre a versão do Python, o sistema operacional e a arquitetura da origem para complementar o inventário de pacotes. 2 min
  7. Reconhecer os limites do inventário Entenda por que versões fixadas ajudam a repetir uma instalação, mas não garantem ambientes equivalentes em máquinas e plataformas diferentes. 2 min
  8. Aplicação final: comprovar a recriação Reúna as evidências da prática, diferencie o que cada verificação demonstrou e formule uma conclusão compatível com os resultados obtidos. 3 min

O que você vai aprender

  • Gerar um requirements.txt a partir de um ambiente dedicado ao projeto.
  • Identificar pacotes e versões fixadas no arquivo, incluindo dependências transitivas.
  • Criar outro ambiente virtual e instalar nele as dependências registradas.
  • Conferir a consistência das dependências com pip check e executar uma verificação manual do programa.
  • Registrar versão do Python e plataforma para explicar diferenças que o requirements.txt não resolve.

Antes de começar

  • Criar ambientes virtuais com venv
  • Instalar pacotes com pip no ambiente correto

Passo 1 de 8

Preparar uma origem dedicada ao projeto

Crie um projeto mínimo em um ambiente virtual exclusivo e registre o resultado inicial do programa para comparações posteriores.

Por que partir de um ambiente dedicado?

Uma origem limpa

O inventário de um ambiente inclui os pacotes instalados nele, mesmo que o programa não os utilize. Por isso, usaremos uma .venv exclusiva para este projeto. Um ambiente compartilhado com outros projetos poderia adicionar pacotes desnecessários à reprodução.

A prática será feita no seu computador, com editor, terminal, Python e acesso ao índice de pacotes para instalar o Rich.

Ambiente dedicado e ambiente compartilhado

Comparação entre um projeto ligado a um ambiente dedicado com poucos pacotes e outro ligado a um ambiente compartilhado com vários pacotes alheios.

No ambiente dedicado, o conjunto instalado permanece relacionado ao projeto. No compartilhado, pacotes de outros trabalhos podem contaminar o futuro inventário.

Montar o projeto de origem

Prepare a pasta e o ambiente

Crie uma pasta nova para evitar o reaproveitamento de uma .venv antiga. Use a opção correspondente ao seu sistema e instale o Rich a partir da fonte que você já conferiu.

Criar a origem e instalar o Rich

Execute somente o bloco correspondente ao seu sistema.

shell
# Windows (PowerShell ou Prompt de Comando)
mkdir recriar-ambiente
cd recriar-ambiente
py -m venv .venv
.venv\Scripts\python.exe -m pip install rich

# macOS ou Linux
mkdir recriar-ambiente
cd recriar-ambiente
python3 -m venv .venv
.venv/bin/python -m pip install rich

Conteúdo completo de app.py

Na pasta recriar-ambiente, crie o arquivo app.py com este conteúdo:

python
from rich import print


def exibir_mensagem():
    print("[bold green]Origem pronta para recriação.[/bold green]")


exibir_mensagem()

Observar o resultado inicial

Crie uma referência de funcionamento

Execute o programa com o interpretador da .venv. O Rich apenas formata a mensagem; o programa não acessa a rede durante essa execução. Guarde o resultado observado como referência para a comparação com o ambiente que será recriado depois.

Executar app.py

Use somente o comando correspondente ao seu sistema.

shell
# Windows
.venv\Scripts\python.exe app.py

# macOS ou Linux
.venv/bin/python app.py

Exemplo

Resultado esperado

O terminal deve mostrar:

Origem pronta para recriação.

A frase pode aparecer em verde e em negrito. Cores e estilos podem variar conforme o terminal.

Registre sua observação

Qual mensagem apareceu ao executar app.py? Informe também se você observou cor ou outro estilo visual.

Escreva pelo menos 20 caracteres (0/20).

Escolher a origem correta

Qual ambiente deve servir de origem?

Você possui um ambiente antigo com pacotes de vários projetos e a .venv nova criada nesta prática. Qual é a melhor origem para o futuro inventário?

Passo 2 de 8

Interpretar pacotes e versões no arquivo

Leia requisitos com versões fixadas e reconheça por que dependências não importadas diretamente também podem aparecer no arquivo.

O que o arquivo representa

Uma lista para o pip

O requirements.txt é um arquivo de texto com requisitos que o pip pode consumir. Ele não contém o código do projeto, não copia o ambiente virtual e não guarda os próprios pacotes.

Cada linha descreve algo que deve estar disponível. Por isso, o arquivo pode citar tanto a distribuição escolhida para o projeto quanto distribuições usadas por ela.

Código, requisitos e dependências

Diagrama com o arquivo app.py ligado ao Rich e um requirements.txt contendo Rich e três dependências conectadas em níveis.

O programa pode importar somente rich, enquanto o arquivo também registra distribuições necessárias ao funcionamento dela.

Anatomia de uma linha

Exemplo

Trecho ilustrativo

markdown-it-py==3.0.0
mdurl==0.1.2
Pygments==2.18.0
rich==13.9.4

As versões do seu ambiente podem ser diferentes.

Nome e versão fixada

Em rich==13.9.4, rich identifica a distribuição e 13.9.4 é a versão específica exigida. O operador == faz essa fixação.

As outras linhas podem representar dependências transitivas. Mesmo sem serem importadas em app.py, elas podem ser necessárias para que Rich funcione.

A linha, isoladamente, não informa se a dependência é direta ou transitiva. Nem a posição no arquivo resolve isso: a classificação depende do contexto do projeto e dos metadados das distribuições.

Confira sua leitura

Associe cada elemento ao significado

Relacione os elementos de um requirements.txt às interpretações corretas.

Toque em um item e depois no par correspondente.

Passo 3 de 8

Gerar e revisar o requirements.txt

Capture os pacotes instalados no ambiente de origem, salve o inventário na pasta do projeto e revise as versões registradas.

O que o pip freeze captura

Um retrato do ambiente de origem

O comando python -m pip freeze lista os pacotes instalados no ambiente associado àquele interpretador. O resultado inclui tanto o pacote escolhido para o projeto quanto suas dependências transitivas.

Ele não analisa os imports de app.py: apenas inventaria o que está instalado. Por isso, a origem deve continuar sendo o ambiente dedicado preparado anteriormente. Algumas ferramentas de empacotamento podem ser omitidas por padrão; não interprete essa ausência como uma análise do código.

Diagrama em que o interpretador do ambiente virtual consulta os pacotes instalados e o terminal direciona a lista para um arquivo requirements.txt fora da pasta do ambiente.

A captura parte do interpretador da origem; o terminal direciona o inventário para um arquivo na pasta do projeto.

Salvar pelo terminal

Use o interpretador da origem

No terminal, entre na pasta do projeto e execute o comando correspondente ao seu sistema. Os caminhos abaixo selecionam diretamente o Python de .venv, sem depender de qual ambiente está ativado.

O símbolo > é um redirecionamento do terminal: ele salva a saída de pip freeze em requirements.txt. Não é o programa Python que escreve esse arquivo.

Windows

Execute na pasta que contém app.py e .venv:

powershell
.venv\Scripts\python.exe -m pip freeze > requirements.txt

macOS ou Linux

Execute na pasta que contém app.py e .venv:

bash
.venv/bin/python -m pip freeze > requirements.txt

Atenção

Cuidado com a sobrescrita

O operador > substitui o conteúdo de um requirements.txt existente. Antes de executar o comando, confira a pasta atual e preserve qualquer arquivo anterior que ainda seja necessário.

Revisar o arquivo gerado

Confira no editor

Abra requirements.txt no editor e confirme que ele está na pasta do projeto, ao lado de app.py, e não dentro de .venv.

Procure linhas no formato nome==versão. É esperado encontrar mais pacotes do que o programa importa diretamente, pois o inventário também registra dependências transitivas. As versões do seu arquivo podem ser diferentes das versões ilustrativas abaixo.

Exemplo ilustrativo de conteúdo

Não substitua o seu arquivo por este exemplo; revise os valores realmente capturados no seu ambiente.

text
markdown-it-py==3.0.0
mdurl==0.1.2
Pygments==2.18.0
rich==13.9.4

Dica

Confirme a procedência da captura

O caminho usado no comando deve apontar para .venv, o ambiente de origem dedicado ao projeto. Se você usou outro interpretador, apague a captura incorreta e gere novamente depois de conferir o comando.

Comprovar a captura

Complete o comando

Complete a parte que falta: python -m pip freeze ___ requirements.txt

Registre suas evidências

Execute a captura no seu computador. Depois, registre duas linhas do arquivo gerado, identifique a versão de cada pacote e explique como o comando confirma que o inventário veio de .venv.

Escreva pelo menos 40 caracteres (0/40).

Passo 4 de 8

Instalar os requisitos em outro ambiente

Crie um ambiente de destino separado e instale nele os requisitos registrados, mantendo o ambiente original intacto para comparação.

Recriar sem copiar o ambiente

Código e requisitos seguem; a pasta do ambiente não

Mantenha o código do projeto e o requirements.txt na pasta do projeto. Em seguida, crie um ambiente separado chamado .venv-recriado.

Não copie nem modifique a pasta .venv original. Ela continua sendo a origem para comparação. O novo ambiente será preenchido pelo pip a partir dos requisitos registrados.

Origem preservada e destino novo

O arquivo requirements.txt orienta a instalação no ambiente novo. Ele não transforma a pasta .venv original em um modelo copiável.

Diagrama de uma pasta de projeto contendo app.py e requirements.txt, com a pasta .venv preservada e uma seta do requirements.txt para uma nova pasta .venv-recriado.

O mesmo projeto mantém a origem intacta e recebe um ambiente virtual novo como destino.

Criar e instalar pelo interpretador correto

Execute na pasta do projeto

Os comandos abaixo usam o interpretador da .venv para criar o destino com a mesma instalação do Python usada na origem. Depois, chamam diretamente o interpretador de .venv-recriado, sem depender de qual ambiente está ativado.

Se suas pastas tiverem outros nomes, ajuste somente os caminhos correspondentes.

Windows — PowerShell

powershell
.\.venv\Scripts\python.exe -m venv .venv-recriado
.\.venv-recriado\Scripts\python.exe -m pip --version
.\.venv-recriado\Scripts\python.exe -m pip install -r requirements.txt

macOS ou Linux

bash
./.venv/bin/python -m venv .venv-recriado
./.venv-recriado/bin/python -m pip --version
./.venv-recriado/bin/python -m pip install -r requirements.txt

O que a instalação faz — e o que revisar antes

A opção -r indica o arquivo de requisitos

Em python -m pip install -r requirements.txt, a opção -r manda o pip ler os requisitos desse arquivo e instalar os pacotes no ambiente associado ao python chamado.

Use um destino novo. Esse comando instala ou ajusta requisitos, mas não remove automaticamente todos os pacotes extras que já existam em um ambiente antigo.

Atenção

Confira requisitos recebidos de terceiros

Antes de consumir um arquivo recebido de outra pessoa, abra-o e confirme os pacotes, versões e eventuais fontes de instalação indicadas. Verifique também se a origem do arquivo e dos pacotes é a esperada. Um ambiente virtual separa instalações, mas não torna um pacote desconhecido seguro.

Dica

Instalar não encerra a conferência

Uma instalação concluída mostra apenas que o pip terminou essa etapa. A consistência das dependências e o funcionamento do programa serão verificados separadamente.

Prática: documente a instalação no destino

Ordene o fluxo de recriação

Coloque as ações na ordem adequada, preservando a .venv original:

  1. Revisar o requirements.txt e confirmar sua procedência e fontes
  2. Criar a pasta .venv-recriado com o interpretador da origem
  3. Confirmar o pip vinculado ao interpretador de .venv-recriado
  4. Instalar com esse interpretador e a opção -r requirements.txt

Registre sua evidência

Execute os comandos adequados ao seu sistema. Depois, relate qual comando instalou os requisitos, qual caminho apareceu em pip --version e se a .venv original permaneceu intacta.

Escreva pelo menos 40 caracteres (0/40).

Passo 5 de 8

Conferir dependências e funcionamento

Compare as versões instaladas, verifique a consistência declarada das dependências e execute o programa no ambiente recriado.

Três evidências diferentes

Instalação, consistência e execução

A conferência do ambiente recriado reúne três evidências:

  1. Versões instaladas: os pacotes do destino correspondem às versões fixadas em requirements.txt.
  2. Consistência declarada: os pacotes instalados encontram as dependências e versões exigidas por seus metadados.
  3. Funcionamento observado: app.py produz no destino o mesmo resultado de referência observado na origem.

Essas evidências se complementam. Uma instalação concluída não garante, sozinha, que os metadados estejam consistentes nem que o programa funcione.

Mapa da conferência

Diagrama com três verificações independentes: comparação de versões, consistência entre pacotes e execução do programa.

Cada verificação responde a uma pergunta diferente sobre o ambiente recriado.

Comparar as versões

Inspecione o destino

Na pasta do projeto, use diretamente o interpretador de .venv-recriado. Compare a coluna de versões com as linhas nome==versão de requirements.txt. As versões do seu arquivo podem ser diferentes das mostradas em exemplos.

Listar pacotes do ambiente recriado

Execute o comando correspondente ao seu sistema operacional.

shell
# Windows
.venv-recriado\Scripts\python.exe -m pip list

# macOS/Linux
.venv-recriado/bin/python -m pip list

Exemplo

Como fazer a comparação

Se requirements.txt contém rich==13.9.4, procure a distribuição rich na listagem do destino e confira se sua versão é 13.9.4. Repita a conferência para as demais linhas, inclusive para dependências transitivas que app.py não importa diretamente.

Verificar a consistência declarada

O que pip check verifica

pip check consulta os metadados dos pacotes instalados no destino. Ele informa dependências ausentes ou versões incompatíveis com as exigências declaradas por esses pacotes.

Ele não compara automaticamente o ambiente com requirements.txt e não executa app.py.

Executar pip check no destino

Use novamente o interpretador inequívoco do ambiente recriado.

shell
# Windows
.venv-recriado\Scripts\python.exe -m pip check

# macOS/Linux
.venv-recriado/bin/python -m pip check

Exemplo

Interpretar a saída

Uma saída como No broken requirements found. indica que o pip não encontrou problemas nas dependências declaradas dos pacotes instalados.

Mensagens ilustrativas como pacote-a requires pacote-b, which is not installed ou pacote-a has requirement pacote-b>=3, but you have pacote-b 2.5 apontam, respectivamente, uma dependência ausente ou uma versão incompatível. O texto exato pode variar conforme a versão do pip.

Executar e registrar as evidências

Verificação manual de app.py

Execute o programa com o interpretador do destino e compare a mensagem formatada com a referência obtida no ambiente de origem. As cores ainda podem variar entre terminais.

shell
# Windows
.venv-recriado\Scripts\python.exe app.py

# macOS/Linux
.venv-recriado/bin/python app.py

Registro da conferência

Registre o que você observou no seu ambiente recriado: cite as versões conferidas, a saída de pip check e o resultado da execução de app.py.

Escreva pelo menos 80 caracteres (0/80).

Passo 6 de 8

Registrar o contexto da reprodução

Registre a versão do Python, o sistema operacional e a arquitetura da origem para complementar o inventário de pacotes.

O que o inventário não registra

Pacotes são apenas parte do contexto

O requirements.txt registra requisitos de pacotes, mas não informa a versão do interpretador Python, o sistema operacional nem a arquitetura da máquina. Esses fatores podem explicar por que a mesma lista instala ou funciona de maneira diferente em outro computador.

Duas partes da evidência

Diagrama dividido: de um lado, um documento com linhas de pacotes e versões; do outro, símbolos de interpretador, sistema operacional e arquitetura, apresentados como informações complementares.

O requirements.txt descreve os pacotes; uma nota de contexto registra informações da plataforma de origem.

Consultar a origem

Use o interpretador do ambiente original

Na pasta do projeto, execute somente os comandos correspondentes ao seu sistema. -VV mostra informações completas da versão e da construção do Python. O módulo platform, da biblioteca padrão, informa o sistema, sua versão ou release e a arquitetura reconhecida pela plataforma.

Windows

Comandos para consultar o ambiente de origem .venv:

shell
.venv\Scripts\python.exe -VV
.venv\Scripts\python.exe -c "import platform; print('Sistema:', platform.system()); print('Versão/release:', platform.release()); print('Arquitetura:', platform.machine())"

macOS ou Linux

Comandos para consultar o ambiente de origem .venv:

shell
.venv/bin/python -VV
.venv/bin/python -c "import platform; print('Sistema:', platform.system()); print('Versão/release:', platform.release()); print('Arquitetura:', platform.machine())"

Dica

Registre a saída sem normalizá-la

Valores como AMD64, x86_64, arm64 ou aarch64 podem aparecer conforme a plataforma. Copie o valor observado, pois ele é a evidência disponível naquele ambiente.

Criar a nota de contexto

Mantenha a nota junto ao projeto

No editor, crie manualmente um arquivo textual como contexto-origem.txt, na pasta do projeto e fora de .venv. Preencha o modelo com as saídas obtidas. Essa nota ajuda a investigar diferenças futuras, mas não garante que outro ambiente será equivalente.

Exemplo

Modelo de contexto da origem

Contexto da origem

Python: [saída completa de python -VV]
Sistema operacional: [saída de platform.system()]
Versão/release do sistema: [saída de platform.release()]
Arquitetura informada: [saída de platform.machine()]

Observação: o requirements.txt registra os pacotes instalados, mas não preserva estas informações do interpretador e da plataforma.

Produza sua evidência

Nota da sua origem

Registre os dados reais do seu ambiente de origem. Ao final, explique em uma frase por que essa nota complementa o requirements.txt.

Escreva pelo menos 100 caracteres (0/100).

Passo 7 de 8

Reconhecer os limites do inventário

Entenda por que versões fixadas ajudam a repetir uma instalação, mas não garantem ambientes equivalentes em máquinas e plataformas diferentes.

Um retrato, não uma garantia

O que o inventário preserva

O pip freeze registra o estado observado no ambiente: distribuições instaladas e suas versões. Isso ajuda a solicitar novamente versões específicas, mas sua saída não é um lockfile completo.

Uma linha como rich==13.9.4 não registra a versão do Python, a plataforma, o artefato exato usado na instalação, dependências externas ao Python nem uma verificação de integridade. Por isso, repetir todas as linhas não garante ambientes equivalentes em qualquer máquina.

O mesmo inventário em contextos diferentes

Um arquivo de requisitos alimenta duas máquinas diferentes; cada uma recebe um artefato de pacote adequado à sua plataforma, e uma delas encontra uma barreira de compatibilidade.

O mesmo nome e a mesma versão podem levar a artefatos diferentes conforme Python, sistema operacional e arquitetura — ou podem nem estar disponíveis para um dos contextos.

O que pode variar

Exemplo

Versão fixada, resultados diferentes

Considere pacote-exemplo==2.4.0 em três situações:

  • a versão não está disponível no índice consultado;
  • a versão existe, mas não oferece um artefato compatível com aquela versão do Python, sistema ou arquitetura;
  • a instalação ocorre, mas o programa depende de uma biblioteca do sistema ou de outra condição externa ausente.

Além disso, nome==versão não comprova, por si só, a integridade, a procedência ou a segurança do artefato obtido.

Atenção

Não apague a evidência da falha

Se a recriação falhar, preserve o requirements.txt original. Confira a mensagem recebida, o contexto de Python e plataforma, a fonte consultada e a disponibilidade da versão. Atualizar vários pacotes indiscriminadamente pode produzir outro ambiente sem explicar por que o original falhou.

Associe cada situação ao limite

Diagnóstico inicial

Relacione cada situação ao limite mais diretamente envolvido.

Toque em um item e depois no par correspondente.

Meça a força da conclusão

Equivalência universal?

Se dois ambientes instalaram todas as linhas nome==versão do mesmo requirements.txt, está comprovado que eles são equivalentes e funcionarão da mesma forma em qualquer plataforma.

Passo 8 de 8

Aplicação final: comprovar a recriação

Reúna as evidências da prática, diferencie o que cada verificação demonstrou e formule uma conclusão compatível com os resultados obtidos.

O conjunto de evidências

Comprovar sem prometer demais

A recriação é sustentada por um conjunto de evidências: o inventário revisado da origem, a instalação em um ambiente novo, a consistência indicada pelo pip check, a execução manual do programa e o contexto da máquina. Nenhuma dessas evidências, isoladamente, garante equivalência universal.

Use o mesmo projeto e os dois ambientes já preparados. Não instale novos pacotes nem crie um terceiro ambiente.

Da origem à conclusão

O fluxo parte de uma origem dedicada, registra os requisitos, instala-os em um destino novo e reúne verificações diferentes antes da conclusão. O código, o requirements.txt e a nota de contexto permanecem fora das pastas descartáveis dos ambientes virtuais.

Diagrama do fluxo entre ambiente de origem, arquivo de requisitos, ambiente de destino e três verificações finais, mantendo os arquivos do projeto fora dos ambientes virtuais.

A conclusão depende da combinação entre requisitos, destino, consistência, execução observada e contexto.

Reconstrua a sequência

Ordene o fluxo completo

Coloque as etapas na ordem adequada para uma futura recriação.

  1. Conferir versões, executar pip check e rodar o programa no destino.
  2. Registrar o contexto e formular uma conclusão limitada pelas evidências.
  3. Preparar uma origem dedicada e observar o funcionamento inicial do programa.
  4. Criar um ambiente virtual de destino separado.
  5. Instalar no destino os requisitos registrados.
  6. Capturar os pacotes instalados em requirements.txt e revisar suas linhas.

Relatório da sua recriação

Registre as evidências reais

Produza um relato curto da prática. Inclua: linhas e versões relevantes do requirements.txt; identificação do ambiente de destino; resultado do pip check; resultado observado ao executar app.py; versão do Python e plataforma da origem; e uma limitação que ainda permanece.

Se a instalação não foi concluída, registre em qual etapa ocorreu a falha e o contexto disponível. Nesse caso, não declare sucesso.

Escreva pelo menos 120 caracteres (0/120).

Fechamento

Resumo

Lista de conferência para futuras recriações

Uma boa conclusão descreve o que foi observado, sem transformar evidência local em garantia universal.

  • Partir de um ambiente de origem dedicado e revisar o inventário capturado.
  • Manter o código, o requirements.txt e a nota de contexto fora da pasta do ambiente virtual.
  • Criar um destino novo e instalar nele os requisitos, em vez de copiar a pasta do ambiente.
  • Comparar versões, executar pip check e verificar manualmente o programa.
  • Registrar Python, sistema operacional e arquitetura para investigar diferenças.
  • Concluir apenas o que as evidências permitem: instalação e funcionamento naquele contexto, ou a etapa exata da falha.

Tutorial concluído

Parabéns! Você concluiu: Recriar ambientes a partir de requirements.txt

Você concluiu “Recriar ambientes a partir de requirements.txt”. Agora consegue registrar dependências, recriar um ambiente separado e justificar o resultado com evidências proporcionais.

100 XP

Baixe o Aplicativo agora para ter acesso a + de 5000 cursos gratuitos, exercícios, certificado e muito conteúdo sem pagar nada!

  • Cursos online 100% gratuitos do início ao fim

    Milhares de cursos online em vídeo, ebooks e áudiobooks.

  • Mais de 60 mil exercícios gratuitos

    Para testar seus conhecimentos no decorrer dos cursos online

  • Certificado Digital gratuito válido em todo o Brasil

    Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail

Aplicativo Cursa na tela de ebook, na tela de curso em vídeo e na tela de exercícios do curso, mais o certificado de conclusão de curso