> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Como criar seu arquivo requirements.txt

> Guia completo sobre o arquivo requirements.txt no Python: aprenda a criar, listar dependências com pip freeze, fixar versões e preparar seu projeto para produção.

# 📋 Arquivo requirements.txt para Python

O arquivo `requirements.txt` é o padrão da indústria para especificar e gerenciar dependências em projetos Python. Este guia mostra como criar, configurar e usar o `requirements.txt` para garantir consistência entre ambientes de desenvolvimento e produção.

## O que é um arquivo requirements.txt?

Um arquivo `requirements.txt` lista todos os pacotes Python externos que seu projeto necessita, com suas versões específicas. Isso permite que:

* Você e sua equipe mantenham ambientes idênticos
* Novos colaboradores reproduzam o ambiente exatamente
* O deploy na Square Cloud funcione com as dependências corretas

***

<Steps>
  <Step title="Ative o ambiente virtual">
    Trabalhar dentro de um ambiente virtual é essencial para manter as dependências do seu projeto isoladas do sistema Python global. Isso evita conflitos de versão e garante reprodutibilidade.

    Ative seu ambiente virtual com um dos comandos abaixo, dependendo do seu sistema:

    **Windows:**

    ```bash theme={null}
    venv\Scripts\activate
    ```

    **macOS/Linux:**

    ```bash theme={null}
    source venv/bin/activate
    ```
  </Step>

  <Step title="Liste as dependências do projeto">
    <Warning>
      Sempre especifique versões exatas com `==` para garantir reprodutibilidade e evitar quebras por atualizações incompatíveis em produção.
    </Warning>

    ### Opção A: Criar manualmente (Recomendado)

    Crie um arquivo `requirements.txt` na raiz do seu projeto e liste todos os pacotes externos com suas versões:

    ```plaintext requirements.txt theme={null}
    discord.py==2.3.0
    requests==2.31.0
    python-dotenv==1.0.0
    ```

    ### Opção B: Gerar automaticamente com pip freeze

    Após instalar as dependências no seu ambiente virtual, você pode gerar automaticamente o arquivo. Existem duas formas principais:

    **Opção B1: Usar `pip freeze` (inclui tudo)**

    ```bash theme={null}
    pip freeze > requirements.txt
    ```

    <Warning>
      Cuidado: `pip freeze` inclui todos os pacotes instalados globalmente, o que pode incluir pacotes desnecessários para seu projeto. Revise o arquivo após gerar e remova dependências que não são estritamente necessárias.
    </Warning>

    **Opção B2: Usar `pipdeptree` ou `pip freeze` com filtragem (Recomendado)**

    Para capturar SOMENTE as dependências do seu projeto (sem packages auxiliares do ambiente), use:

    ```bash theme={null}
    pip freeze --user > requirements.txt
    ```

    Ou, para uma solução mais limpa, instale o `pipdeptree`:

    ```bash theme={null}
    pip install pipdeptree
    pipdeptree -p seu_projeto > requirements.txt
    ```

    Alternativa: Use uma abordagem de lista manual ou confira qual pacote foi instalado especificamente para seu projeto:

    ```bash theme={null}
    pip list | grep -i "seu-pacote"
    ```

    <Note>
      Se você estiver trabalhando em um ambiente virtual (recomendado), `pip freeze` funcionará perfeitamente pois o ambiente estará isolado e conterá apenas as dependências do seu projeto.
    </Note>
  </Step>

  <Step title="Revise e valide as dependências">
    Abra o arquivo `requirements.txt` em seu editor de texto e:

    1. Revise a lista de pacotes
    2. Remova dependências desnecessárias
    3. Atualize versões conforme necessário
    4. Certifique-se de estar usando versões exatas (com `==`)
  </Step>

  <Step title="Instale as dependências">
    Para instalar todas as dependências listadas:

    ```bash theme={null}
    pip install -r requirements.txt
    ```

    Este comando garante que todos os colaboradores e ambientes de produção usem exatamente as mesmas versões.
  </Step>

  <Step title="Versione e compartilhe">
    Com o `requirements.txt` pronto, você pode:

    * Compartilhá-lo com sua equipe
    * Colocá-lo no controle de versão (git)
    * Garantir que todos trabalhem com as mesmas versões
    * Simplificar o deployment na Square Cloud

    Quando você hospeda seu projeto na Square Cloud, o arquivo `requirements.txt` é automaticamente detectado e todas as dependências são instaladas durante o build.
  </Step>
</Steps>

***

## 💡 Melhores Práticas e Dicas:

* **Mantenha atualizado**: Revise e atualize o `requirements.txt` regularmente conforme adiciona novas dependências
* **Use versões exatas**: Sempre use `==` em vez de `>`, `>=` ou sem versão para evitar surpresas em produção
* **Revisar pip freeze**: Se usar `pip freeze`, revise o arquivo antes de commitar, pois pode incluir pacotes auxiliares desnecessários
* **Versionamento**: Commit o `requirements.txt` no git para rastrear mudanças de dependências
* **Ambiente isolado**: Mantenha um ambiente virtual por projeto para evitar conflitos globais
* **Testar localmente**: Antes de fazer deploy, teste o arquivo com `pip install -r requirements.txt` em um novo ambiente

***

## 🚀 Próximos Passos

Com seu arquivo `requirements.txt` configurado:

1. Commit no seu repositório Git.
2. Hospede seu projeto na **Square Cloud**.
3. Configure o deploy automático via GitHub.
4. Seja bem-vindo à hospedagem profissional de aplicações Python!

Um arquivo `requirements.txt` bem estruturado é a base para qualquer aplicação Python de sucesso, garantindo que sua aplicação funcione perfeitamente na Square Cloud.
