Administración de los paquetes necesarios de Python con requirements.txt

Si comparte el proyecto de Python con otros usuarios o usa un sistema de compilación para generar la aplicación de Python, debe especificar los paquetes externos necesarios. Cuando planee copiar el proyecto en otras ubicaciones en las que necesite restaurar un entorno, también debe definir los paquetes dependientes necesarios.

El enfoque recomendado para especificar paquetes de Python dependientes externos es usar un archivo de requisitos (readthedocs.org). Este archivo contiene una lista de comandos pip que instalan las versiones necesarias de paquetes dependientes para el proyecto. El comando más común es pip freeze > requirements.txt. Este comando registra la lista de paquetes actual de su entorno en el archivo requirements.txt.

Un archivo de requisitos contiene versiones precisas de todos los paquetes instalados. Puede usar archivos de requisitos para inmovilizar los requisitos de un entorno. Al usar versiones de paquetes precisas, puede reproducir fácilmente el entorno en otro equipo. Los archivos de requisitos incluyen paquetes incluso si están instalados con un intervalo de versiones, como dependencia de otro paquete, o con un instalador distinto de pip.

Requisitos previos

Técnicamente, se puede usar cualquier nombre de archivo para realizar un seguimiento de los requisitos. Sin embargo, Visual Studio proporciona compatibilidad específica con el archivo de requisitos denominado "requirements.txt". Puede usar el argumento -r <full path to file> al instalar un paquete para especificar el nombre que prefiera para el archivo.

Instalación de las dependencias enumeradas en un archivo requirements.txt.

Si carga un proyecto que tiene un archivo requirements.txt, puede instalar todas las dependencias del paquete enumeradas en el archivo.

  1. En el Explorador de soluciones, expanda el proyecto y, a continuación, expanda el nodo Entornos de Python.

  2. Busque el nodo de entorno para el que desea instalar los paquetes. Haga clic con el botón derecho en el nodo y seleccione Instalar desde requirements.txt.

    Captura de pantalla que muestra cómo instalar paquetes de Python desde un archivo de texto de requisitos en Visual Studio 2019.

    Captura de pantalla que muestra cómo instalar paquetes de Python desde un archivo de texto de requisitos en Visual Studio 2022.

  3. Puede supervisar el proceso de instalación del paquete en la ventana Salida:

    Captura de pantalla que muestra la salida de la instalación de los paquetes de Python desde un archivo de texto de requisitos.

    La salida enumera los paquetes necesarios que se instalan, junto con las actualizaciones necesarias para los comandos pip afectados y la disponibilidad de versiones pip más recientes.

Instalación de dependencias en un entorno virtual

También puede instalar las dependencias del paquete de Python en un entorno virtual existente.

  1. En el Explorador de soluciones, expanda el proyecto y, a continuación, expanda el nodo Entornos de Python.

  2. Busque el nodo de entorno virtual para el que desea instalar los paquetes. Haga clic con el botón derecho en el nodo y seleccione Instalar desde requirements.txt.

Si necesita crear un entorno virtual, consulte Uso de entornos virtuales.

Generación del archivo requirements.txt

Si todos los paquetes de Python necesarios para el proyecto ya están instalados en un entorno, puede generar el archivo requirements.txt en Visual Studio.

  1. En el Explorador de soluciones, expanda el proyecto y, a continuación, expanda el nodo Entornos de Python.

  2. Busque el nodo de entorno para el que desea generar el archivo de requisitos. Haga clic con el botón derecho en el nodo y seleccione Generar requirements.txt.

    Captura de pantalla donde se indica cómo generar un archivo de texto de requisitos para las dependencias del paquete de Python en Visual Studio 2019.

    Captura de pantalla donde se ve cómo generar un archivo de texto de requisitos para las dependencias del paquete de Python en Visual Studio 2022.

Actualización o adición de entradas a un archivo requirements.txt existente

Si el archivo requirements.txt ya existe, Visual Studio muestra un mensaje con varias opciones:

Captura de pantalla del mensaje donde se indica cuando el archivo de texto de requisitos ya existe, con opciones para actualizar o agregar entradas, o reemplazar el archivo.

  • Reemplazar todo el archivo: sobrescribe todos los elementos, comentarios y opciones definidos en el archivo requirements.text.
  • Actualizar entradas existentes: actualiza los especificadores de versión del archivo requirements.text para que coincidan con la versión instalada actualmente.
  • Actualizar y agregar entradas: actualiza los requisitos existentes del archivo requirements.text y anexa todos los requisitos nuevos del paquete al final del archivo.

Visual Studio ejecuta pip para detectar los requisitos actuales del paquete para el entorno y, a continuación, actualiza el archivo requirements.txt en función de la selección.

Instalación manual de las dependencias del paquete

Si pip no instala una dependencia del paquete definida en el archivo requirements.txt, toda la instalación produce un error.

Tiene dos opciones para resolver este problema:

  • Edita manualmente el archivo requirements.txt para excluir el paquete con errores y, a continuación, vuelve a ejecutar el proceso de instalación.

  • Use las opciones de comando pip para hacer referencia a una versión instalable del paquete.

Actualización del archivo de requisitos con rueda de pip

Si usa el comando pip wheel para compilar una dependencia, puedes agregar la opción --find-links <path> al archivo requirements.txt.

  1. Llame al comando pip wheel para compilar la lista de dependencias necesarias:

    pip wheel azure
    

    La salida muestra las ruedas creadas para los paquetes recopilados:

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. Anexa las opciones find-links y no-index, junto con el requisito de versión del paquete al archivo requirements.txt:

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. Ejecute el proceso de instalación de pip con el archivo de requisitos actualizado:

    pip install -r requirements.txt -v
    

    La salida realiza un seguimiento del progreso del proceso de instalación:

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...