Cómo instalar paquetes Python con requirements.txt
Existe una forma mucho más conveniente para descargar e instalar los paquetes
necesarios para un proyecto Python. Involucra utilizar un archivo de
texto (llamado requirements.txt
), en el cual se anotan los paquetes para que
pip se encargue de instalarlos de forma automática.
El archivo requirements.txt permite automatizar la instalación de paquetes
Generalmente, cuando se está desarrollando algún tipo de software (aplicaciones web, videojuegos), es muy común utilizar un conjunto de paquetes o librerías que ayuden a construirlo con un nivel de calidad aceptable en menos tiempo.
Los paquetes necesarios se pueden descargar directamente desde el sitio web; clonar desde un repositorio, por lo general un repositorio Git alojado en Github; o instalarlos directamente usando pip. Sin embargo, este procedimiento manual es muy tedioso y lejos de ser eficiente.
Si por alguna razón se pierden los paquetes obtenidos o se necesita utilizar una nueva computadora para continuar con el desarrollo del proyecto, es necesario volver a los sitios web o repositorios y descargarlos de nuevo, uno por uno.
El archivo requirements.txt
permite automatizar la instalación de paquetes
Python y por lo tanto agilizar esta parte del proceso de desarrollo de
software.
Cómo utilizar el archivo requirements.txt
Hay dos cosas que se deben saber antes de utilizar el archivo
requirements.txt
. En primer lugar se debe saber el nombre exacto de los
paquetes o librerías que se quieren instalar. El nombre se puede buscar en el
repositorio PyPi ejecutando el siguiente comando en una terminal:
$ pip search <package>
Es necesario tener instalado pip para poder ejecutar el comando anterior.
Por ejemplo, si se va a desarrollar un videojuego y para esto necesitamos instalar Pygame, realizamos una búsqueda con pip ejecutando el comando:
$ pip search pygame
El resultado del comando arroja un listado de paquetes:
KezMenu - A simple and basical Pygame library for...
spw - Simple Pygame Wrapper provides a 2D...
Pygame - Pygame gives multimedia to python.
glyph - Pygame typesetting library
zanthor - Zanthor is a game where you play an evil...
En el listado se puede ver la línea que comienza con Pygame, este es el
nombre que se debe anotar en el archivo requirements.txt
.
Además del nombre del paquete, es recomendable saber también la versión. Al
anotar la versión en el archivo requirements.txt
, pip instalará esa
versión específica a pesar que existan versiones mas recientes.
Esto, sin lugar a dudas, evitará que se presenten problemas en el proyecto si el paquete es actualizado a una nueva versión y algunas de sus caracteristicas son removidas o actualizadas.
Si no se anota el número de versión del paquete, pip instalará por defecto la última versión disponible en el repositorio PyPi.
Para saber la versión, se puede consultar el sitio web del repositorio PyPi o ir al sitio web de cada paquete y revisar las versiones disponibles.
Ahora si, con estos dos datos se pueden anotar los paquetes Python en el
archivo requirements.txt
de la siguiente forma:
# Para instalar una versión específica
package==version
# Para instalar una versión igual o superior
package>=version
# Para instalar la versión más reciente
package
Por ejemplo, si se quiere instalar la versión 1.7.1 de Pygame, se anota lo siguiente:
Pygame==1.7.1
Si se desea instalar una versión mayor que o igual a la 1.7.1, se anota lo siguiente:
Pygame>=1.7.1
Cómo instalar los paquetes Python anotados en el archivo requirements.txt
Simplemente se ejecuta el siguiente comando en la terminal:
$ pip install -r requirements.txt
El comando anterior debe ejecutarse en el directorio dónde se encuentra el archivo
requirements.txt
.
Haciendo esto, se instalaran en el sistema o en el virtualenv que
tengamos activado, los paquetes anotados en el archivo requirements.txt
.