Capítulo 1: Comencemos Nuestro Viaje de Automatización
Parte 1: Entornos Virtuales y Paquetes de Terceros
El objetivo de este capítulo es establecer algunas de las técnicas básicas que serán útiles a lo largo de todo el libro. La idea principal es crear un buen entorno de Python para ejecutar las tareas de automatización y ser capaz de analizar entradas de texto en datos estructurados.
Python tiene una buena cantidad de herramientas instaladas por defecto, pero también facilita la instalación de herramientas de terceros que pueden simplificar muchas operaciones comunes.
Activar un Entorno Virtual
Como primer paso al trabajar con Python, es una buena práctica definir explícitamente el entorno de trabajo. Esto te ayuda a desacoplarte del intérprete y entorno del sistema operativo y definir correctamente las dependencias que se utilizarán.
import this.
No crear un entorno virtual tiende a generar escenarios caóticos. Es especialmente importante en dos escenarios:
- Cuando se trabaja con múltiples proyectos en la misma computadora, ya que pueden tener dependencias que chocan
- Cuando se trabaja en un proyecto que se usará en una computadora diferente, por ejemplo, código que se ejecutará en un servidor remoto
Preparación
Para crear un nuevo entorno virtual, ve al directorio principal de tu proyecto:
$ cd mi-directorio $ python3 -m venv .venv
Esto crea un subdirectorio llamado .venv que contiene el entorno virtual. El punto al frente evita que se muestre cuando ejecutas ls.
Cómo Hacerlo
1. Activa el entorno virtual en Linux o macOS:
$ source .venv/bin/activate
Notarás que el prompt del shell mostrará (.venv), indicando que el entorno virtual está activo.
2. Verifica que el intérprete de Python es el del entorno virtual:
(.venv) $ which python /directorio_raiz/.venv/bin/python (.venv) $ which pip /directorio_raiz/.venv/bin/pip
3. Actualiza pip dentro del entorno virtual:
(.venv) $ pip install --upgrade pip Successfully installed pip-20.0.2
4. Para salir del entorno virtual:
(.venv) $ deactivate $
Cómo Funciona
Dentro del entorno virtual puedes usar python en lugar de python3. El entorno virtual contiene todos los datos de Python en el directorio .venv, y el script activate apunta todas las variables de entorno allí.
Hay Más
Para eliminar un entorno virtual, simplemente desactívalo y elimina el directorio:
(.venv) $ deactivate $ rm -rf .venv
Una forma conveniente de manejar múltiples entornos virtuales es usar virtualenvwrapper:
$ pip install virtualenvwrapper # Agregar a .bashrc o .bash_profile: export WORKON_HOME=~/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh # Crear y usar entornos: $ mkvirtualenv automation_cookbook $ workon automation_cookbook
Instalar Paquetes de Terceros
Una de las capacidades más fuertes de Python es la habilidad de usar un impresionante catálogo de paquetes de terceros que cubren una cantidad asombrosa de áreas: operaciones numéricas, aprendizaje automático, comunicaciones de red, acceso a bases de datos, procesamiento de imágenes, ¡y mucho más!
La mayoría están disponibles en el Python Package Index oficial (pypi.org), que tiene más de 200,000 paquetes listos para usar.
replicabilidad.
Cómo Hacerlo
1. Crea un archivo requirements.txt en tu directorio principal:
delorean==1.0.0 requests==2.22.0
2. Instala todos los requisitos con pip:
$ pip install -r requirements.txt Successfully installed babel-2.8.0 certifi-2019.11.28 chardet-3.0.4 delorean-1.0.0 humanize-0.5.1 idna-2.8 python-dateutil-2.8.1 pytz-2019.3 requests-2.22.0
3. Verifica los módulos instalados:
$ pip list Package Version --------------- ---------- Delorean 1.0.0 requests 2.22.0 pip 20.0.2 ...
4. Ahora puedes usar los módulos en Python:
>>> import delorean >>> import requests
Cómo Funciona
El archivo requirements.txt especifica el módulo y la versión exacta, y pip realiza una búsqueda en pypi.org. Crear un nuevo entorno virtual desde cero y ejecutar pip install -r requirements.txt recreará completamente tu entorno.
Hay Más
El comando freeze puede usarse para generar un archivo con todos los módulos instalados:
$ pip freeze > requirements.txt