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
Visual Studio instalado con compatibilidad con cargas de trabajo de Python. Para obtener más información, consulte Instalación de la compatibilidad con Python en Visual Studio.
Un archivo de requisitos. Puede usar un archivo de requisitos existente o generar un archivo como se describe en este artículo.
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.
En el Explorador de soluciones, expanda el proyecto y, a continuación, expanda el nodo Entornos de Python.
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.
Puede supervisar el proceso de instalación del paquete en la ventana Salida:
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.
En el Explorador de soluciones, expanda el proyecto y, a continuación, expanda el nodo Entornos de Python.
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.
En el Explorador de soluciones, expanda el proyecto y, a continuación, expanda el nodo Entornos de Python.
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.
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:
- 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
.
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...
Anexa las opciones
find-links
yno-index
, junto con el requisito de versión del paquete al archivorequirements.txt
:type requirements.txt --find-links wheelhouse --no-index azure==0.8.0
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...