> ## 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.

# Cómo crear tu archivo requirements.txt

> Guía completa del archivo requirements.txt en Python: aprende a crearlo, listar dependencias con pip freeze, fijar versiones y preparar tu proyecto para producción.

# 📋 Archivo requirements.txt para Python

El archivo `requirements.txt` es el estándar de la industria para especificar y gestionar dependencias en proyectos Python. Esta guía muestra cómo crear, configurar y usar `requirements.txt` para garantizar la consistencia entre los entornos de desarrollo y producción.

## ¿Qué es un archivo requirements.txt?

Un archivo `requirements.txt` lista todos los paquetes externos de Python que tu proyecto necesita, con sus versiones específicas. Esto permite:

* Que tú y tu equipo mantengan entornos idénticos
* Que los nuevos colaboradores reproduzcan el entorno exactamente
* Que el deploy en Square Cloud funcione con las dependencias correctas

***

<Steps>
  <Step title="Activa el entorno virtual">
    Trabajar dentro de un entorno virtual es esencial para mantener las dependencias de tu proyecto aisladas del sistema Python global. Esto evita conflictos de versiones y garantiza la reproducibilidad.

    Activa tu entorno virtual con uno de los comandos de abajo, según tu sistema:

    **Windows:**

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

    **macOS/Linux:**

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

  <Step title="Lista las dependencias del proyecto">
    <Warning>
      Especifica siempre versiones exactas con `==` para garantizar la reproducibilidad y evitar rupturas causadas por actualizaciones incompatibles en producción.
    </Warning>

    ### Opción A: Crearlo manualmente (Recomendado)

    Crea un archivo `requirements.txt` en la raíz de tu proyecto y lista todos los paquetes externos con sus versiones:

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

    ### Opción B: Generarlo automáticamente con pip freeze

    Después de instalar las dependencias en tu entorno virtual, puedes generar el archivo automáticamente. Hay dos formas principales:

    **Opción B1: Usar `pip freeze` (incluye todo)**

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

    <Warning>
      Precaución: `pip freeze` incluye todos los paquetes instalados globalmente, lo que puede incluir paquetes innecesarios para tu proyecto. Revisa el archivo después de generarlo y elimina las dependencias que no sean estrictamente necesarias.
    </Warning>

    **Opción B2: Usar `pipdeptree` o `pip freeze` con filtrado (Recomendado)**

    Para capturar SOLO las dependencias de tu proyecto (sin los paquetes auxiliares del entorno), usa:

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

    O, para una solución más limpia, instala `pipdeptree`:

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

    Alternativa: Usa una verificación de lista manual o comprueba qué paquete se instaló específicamente para tu proyecto:

    ```bash theme={null}
    pip list | grep -i "your-package"
    ```

    <Note>
      Si estás trabajando en un entorno virtual (recomendado), `pip freeze` funcionará perfectamente ya que el entorno estará aislado y contendrá solo las dependencias de tu proyecto.
    </Note>
  </Step>

  <Step title="Revisa y valida las dependencias">
    Abre el archivo `requirements.txt` en tu editor de texto y:

    1. Revisa la lista de paquetes
    2. Elimina las dependencias innecesarias
    3. Actualiza las versiones según sea necesario
    4. Asegúrate de usar versiones exactas (con `==`)
  </Step>

  <Step title="Instala las dependencias">
    Para instalar todas las dependencias listadas:

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

    Este comando garantiza que todos los colaboradores y los entornos de producción usen exactamente las mismas versiones.
  </Step>

  <Step title="Versiona y comparte">
    Con `requirements.txt` listo, puedes:

    * Compartirlo con tu equipo
    * Ponerlo bajo control de versiones (git)
    * Asegurar que todos trabajen con las mismas versiones
    * Simplificar el deployment en Square Cloud

    Cuando alojas tu proyecto en Square Cloud, el archivo `requirements.txt` se detecta automáticamente y todas las dependencias se instalan durante el build.
  </Step>
</Steps>

***

## 💡 Buenas prácticas y consejos:

* **Mantenlo actualizado**: Revisa y actualiza `requirements.txt` con regularidad a medida que añades nuevas dependencias
* **Usa versiones exactas**: Usa siempre `==` en lugar de `>`, `>=` o ninguna versión para evitar sorpresas en producción
* **Revisa pip freeze**: Si usas `pip freeze`, revisa el archivo antes de confirmarlo, ya que puede incluir paquetes auxiliares innecesarios
* **Control de versiones**: Confirma `requirements.txt` en git para rastrear los cambios de dependencias
* **Entorno aislado**: Mantén un entorno virtual por proyecto para evitar conflictos globales
* **Prueba localmente**: Antes de hacer el deploy, prueba el archivo con `pip install -r requirements.txt` en un entorno nuevo

***

## 🚀 Próximos pasos

Con tu archivo `requirements.txt` configurado:

1. Confírmalo en tu repositorio Git.
2. Aloja tu proyecto en **Square Cloud**.
3. Configura el deploy automático mediante GitHub.
4. ¡Bienvenido al hosting profesional de aplicaciones Python!

Un archivo `requirements.txt` bien estructurado es la base de cualquier aplicación Python exitosa, garantizando que tu aplicación funcione perfectamente en Square Cloud.
