Instalar el entorno de trabajo
Introducción
Aquí solo abordaremos CPython, la implementación de referencia de Python, y no PyPy o Jython.
Sea cual sea su sistema operativo, podrá instalar Python leyendo este capítulo y, a continuación, instalar las librerías externas en función de sus necesidades (consulte la sección Instalar una librería externa) y crear entornos virtuales (consulte la sección Crear un entorno virtual).
Si desea instalar a la vez Python y Jupyter (antes IPython) y la mayoría de librerías científicas o de análisis de datos, puede ir directamente a la sección Instalar Anaconda, para instalar este paquete en lugar de Python. Dispondrá de otros métodos para gestionar entornos virtuales y para instalar librerías externas.
Instalar Python
1. Para Windows
El sistema operativo Windows requiere habitualmente el uso de un instalador para poder instalar una aplicación sea cual sea. Si dispone de Windows, seguramente esté habituado. Python no se salta esta regla.
Para instalar Python, vaya al sitio oficial (http://python.org/download/) para descargar el instalador adecuado. Como podrá constatar, se sitúan en primer lugar un acceso rápido a la última versión (en el momento de escribir este libro era la 3.12.0); después un acceso a las últimas versiones todavía activas (actualmente, la versión 3.11, que aún recibe correcciones de anomalías; luego, las versiones de la 3.8 a la 3.10, que solo reciben correcciones de seguridad).
También se puede descargar la última versión de la rama 2.7, que está al final de su vida (ya no se actualiza), porque todavía hay muchos proyectos que no se han migrado.
El soporte correctivo dura 2 años después de la primera aparición de la versión y el soporte de seguridad dura 5 años.
Nosotros le aconsejamos trabajar con la última versión 3.x, aunque usted es libre de instalar la que desee o incluso instalar varias en función de sus necesidades, no existe ninguna objeción a ello.
Una vez realizada la descarga, debe ejecutar el instalador (y eventualmente superar algunas protecciones de su sistema operativo que le solicita aceptar su confianza a este instalador), para ver la siguiente ventana:
Como podrá constatar, es posible personalizar la instalación seleccionando la ruta de instalación de la aplicación o escogiendo instalar solamente algunas funcionalidades, aunque no se lo aconsejamos.
Le recomendamos, en cambio, marcar...
Instalar una librería externa
Si aborrece el terminal, sepa que puede instalar una librería externa desde su IDE, lo cual le resultará probablemente más práctico.
1. A partir de Python 3.4
Para instalar una librería externa, simplemente debe conocer su nombre. Este es, por lo general, bastante intuitivo. Por ejemplo, la librería que permite comunicarse con un servidor Redis se llama redis.
Puede haber variaciones. Por ejemplo, la librería de referencia para trabajar con archivos XML es lxml y, algo más difícil, la que nos permite trabajar con BeautifulSoup es bs4. Buscando cómo responder a un requerimiento en la red o en PyPi (https://pypi.python.org/pypi), encontrará rápidamente una librería de referencia.
Sobre asuntos más confidenciales, puede ocurrir que encuentre varias pequeñas librerías. Puede probarlas y seleccionar la que utilizará en su proyecto.
Sepa que también puede realizar una búsqueda directamente desde su terminal:
$ pip search xml
$ pip search soup
Esto le devolverá una lista de librerías acompañada de una pequeña descripción, de manera similar a como lo hacen los administradores de paquetes en Linux (los cuales están escritos en Python, dicho sea de paso).
Sepa que pip existe sea cual sea su sistema operativo (debe estar familiarizado con el terminal de su sistema, sin embargo)...
Crear un entorno virtual
Si aborrece el terminal, sepa que puede crear un entorno virtual desde su IDE, lo cual le resultará probablemente más práctico.
1. ¿Para qué sirve un entorno virtual?
Un entorno virtual es simplemente un entorno que está aislado de su sistema. Resulta interesante por varios motivos.
El primero es que probablemente no desea ensuciar la versión de Python de su sistema con librerías que solo se utilizan en un proyecto particular.
El segundo es que esto evitará que todos sus proyectos se ensucien con esta misma librería que solo va a utilizar en uno de ellos.
En la misma línea, probablemente tenga que desarrollar un nuevo sitio de Internet con Django 1.9 al mismo tiempo que debe asegurar el mantenimiento de otros dos sitios con las versiones 1.7 y 1.8. En este caso, verá el problema: no puede pasar todo su tiempo cambiando de versión.
Le conviene crear un entorno virtual para cada nuevo proyecto que desarrolle, preferentemente con versiones idénticas a las que se utilizarán más adelante en producción.
El entorno virtual es un elemento indispensable en un marco de trabajo profesional.
2. Para Python 3.3 o versiones superiores
La posibilidad de crear entornos virtuales se incluye por defecto con Python 3.3 y con las siguientes versiones, bajo la fórmula del módulo venv. Existe un script pyvenv que permite crear el entorno virtual de manera muy sencilla:
$ pyvenv /path/to/my/env...
Gestión de las dependencias
La herramienta pip instala un paquete específico, así como todas sus dependencias. En cambio, cuando se quiere instalar un paquete y tiene una dependencia que no es compatible con lo existente, pip no puede resolver la situación.
Poetry (https://python-poetry.org/docs/basic-usage/) es un gestor de paquetes Python que permite administrar las versiones de todos los paquetes de forma que todo sea compatible.
Para usar esta herramienta, primero hay que instalarla; lo ideal es hacerlo en un entorno virtual:
$ pip install poetry
Después hay que crear un proyecto:
$ poetry new example
Este comando crea un directorio example que contiene los archivos básicos de un proyecto, entre ellos el archivo pyproject.toml. Este último contiene, entre otros, el nombre de las distintas dependencias. Si estamos en el directorio de un proyecto que ya existe, también podemos usar:
$ poetry init
Con este comando se le pide al usuario de manera interactiva los distintos elementos para actualizar el archivo pyproject.toml, entre ellos el nombre de los paquetes deseados. Eso se hace en varios pasos. En primer lugar, el programa solicita el nombre del paquete, hace una búsqueda para encontrar los nombres más parecidos a lo que se busca, luego se le pide que elija en la lista y pregunta si hay particularidades sobre la versión deseada.
Después de cerrar este programa, siempre se pueden agregar paquetes...
Instalar Anaconda
1. Para Windows
Como ocurre con cualquier otra aplicación, la instalación de Anaconda requiere un instalador, que puede descargar del sitio oficial del proyecto (https://www.anaconda.com/download).
Basta con ejecutar este archivo y pasar por las diferentes etapas de seguridad aceptando la confianza al fabricante, lo cual nos lleva a la siguiente ventana de inicio:
Debe aceptar en primer lugar la licencia, y luego seleccionar si desea instalar el producto para usted (Just Me (recommended)) o bien para todos los usuarios (All Users (requires admin privileges)), sabiendo que puede resultar útil, en función de su uso del sistema de cuentas de Windows, instalar la aplicación para todos los usuarios.
El resto del proceso es bastante básico. Sin embargo, le recomendamos escoger agregar Anaconda en su variable de sistema path (marque para ello la opción Add Anaconda to my PATH environment variable), de manera que pueda utilizarse desde el terminal (le recomendamos también no instalar Python y Anaconda al mismo tiempo).
La opción Register Anaconda as my default Python 3.11 es la otra opción importante que debe marcar, pues le permite utilizar Anaconda como versión principal de Python (la que se invocará por los principales programas que utilicen Python, por ejemplo PyCharm, que veremos más adelante).
Recuerde que la versión de Python que se utilizará en el terminal...
Docker
Docker es una solución cada vez más utilizada. Permite crear contenedores minimalistas que son sistemas operativos en miniatura y contienen la cantidad mínima de paquetes necesaria para realizar una tarea. De esta forma, tenemos contenedores para Debian o Windows, pero también para Redis, PostgreSQL, RabbitMQ o incluso Python (https://hub.docker.com/_/python).
Para poder usar Docker, primero hay que instalarlo:
Si no está familiarizado con la herramienta, le recomiendo usar Docker Desktop porque le permitirá administrar los contenedores mediante una interfaz gráfica (https://docs.docker.com/engine/install/). También le recomendamos instalar docker compose (https://docs.docker.com/compose/install/).
Una vez hecho esto, solo tiene que ejecutar una imagen preconstruida, como las imágenes Python:
$ docker run python:3.12-rc-bullseye
Esta instrucción descargará la imagen y luego la iniciará.
También es posible crear un archivo Dockerfile:
FROM python:3.12-rc-bullseye
SHELL ["/bin/bash", "-c"]
ENV DEBIAN_FRONTEND noninteractive
ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
ARG POETRY_VERSION=1.1.14
RUN useradd pythoniste --create-home --user-group --groups sudo --shell
/bin/bash ...
La consola Python
1. Arrancar la consola Python
La consola Python es una herramienta indispensable, pero que puede llegar a exasperar a los debutantes rápidamente por aquello del copiar y pegar. Por tratarse de una herramienta especialmente poco agradable de utilizar, la explicaremos brevemente sin detenernos en los detalles.
Sea cual sea su sistema operativo, para arrancar la consola, puede abrir un terminal y escribir, según su versión:
$ python
$ python3
$ python2.6
$ python3.5
La primera línea abre la consola de Python del sistema, para los sistemas GNU/Linux o Mac. Las demás líneas abren las versiones que haya instalado usted mismo.
Para los usuarios de Windows, la primera línea abre la primera versión de Python que se encuentre en el PATH. Si el comando no funciona, es porque el PATH está mal configurado.
Sepa que también se puede acceder a la consola a partir del menú llamado Consola Python o IDLE. IDLE es una herramienta gráfica, pero sepa que es tan poco práctica como la consola.
Cuando se abre la consola, verá el número de versión así como una línea que empieza por tres símbolos ">". Se trata de la línea de comandos de la consola de Python.
2. BPython
BPython es una consola mejorada, que aprovecha una librería que permite una mejor interacción (y también se utiliza en otros productos...
Instalar un IDE
1. Lista de IDE
Disponer de un entorno de trabajo adaptado es importante siempre y cuando se trabaje en proyectos de un tamaño considerable. Podemos utilizar vim ocasionalmente para trabajar con scripts, aunque esta solución resulta limitada rápidamente, incluso aunque estemos habituados.
Existen muchas soluciones (http://wiki.python.org/moin/IntegratedDevelopmentEnvironments), entre las que se encuentran Eclipse y Aptana, Eric o Spyder.
La combinación de Eclipse + PyDev puede resultar seductora en el papel: cuando se trabaja en proyectos que utilizan distintos lenguajes de programación permite que todos los desarrolladores trabajen en un único entorno de desarrollo.
Desgraciadamente, resulta difícil instalar Eclipse más todas las extensiones, dado que cada una tiene sus propias dependencias, y no son del todo compatibles las unas con las otras. En la vida real, nos vemos obligados a tener un Eclipse para Python, otro para PHP, otro para C y un último para Java, pues es muy complicado hacer funcionar todo el conjunto.
Aptana es una versión empaquetada de Eclipse + PyDev. Es, por tanto, una versión dedicada a Python. Este entorno responde a los criterios esenciales, aunque es particularmente lento y en ocasiones inestable, y algunas funcionalidades básicas como el auto completado no están del todo garantizadas. Daremos preferencia a otras soluciones.
Eric (http://eric-ide.python-projects.org/index.html) es un IDE libre y gratuito escrito en Python que es realmente muy completo. Como muestran las capturas de pantalla del sitio web, proporciona una gran cantidad de funcionalidades muy bien adaptadas y muy diversificadas. Dispone también de autocompletado de código y de un depurador, así...
VSCode
VSCode es un editor de código de Microsoft con el que se puede editar código escrito casi en cualquier lenguaje, y por supuesto Python está incluido. Ha sido diseñado como un editor muy genérico al que se puede añadir una gran cantidad de extensiones. En lo que respecta al análisis de sintaxis o a la generación automática de documentación, es casi tan evolucionado como PyCharm y permite responder bastante bien a los problemas más grandes.
Pero donde marca una diferencia significativa es en la posibilidad de instalarlo en un contenedor. Dicho de otro modo, puede usar el Python de un contenedor específico.
Para eso, hay que instalar VSCode, luego su extensión para WSL (si está bajo Windows) y la extensión para los contenedores Docker. Por último, hay que crear una imagen Python adaptada a nuestras necesidades (con todos los paquetes útiles para nuestro código) y abrir VSCode dentro del contenedor.