Contexto real¶

Imagen generada con Inteligencia Artificial
Hemos visto que Thonny es una herramienta especialmente diseñada para el aprendizaje de Python, integrando diferentes módulos que facilitan su gestión. Si bien lo podemos utilizar para un desarrollo más «serio», se suele recurrir a un flujo de trabajo algo diferente en contextos más reales.
Python¶
La forma más habitual de instalar Python (junto con sus librerías) es descargarlo e instalarlo desde su página oficial:
Anaconda¶
Otra de las alternativas para disponer de Python en nuestro sistema y que además es muy utilizada, es Anaconda. Se trata de un conjunto de herramientas, orientadas en principio a la ciencia de datos, pero que podemos utilizar para desarrollo general en Python (junto con otras librerías adicionales).
Existen versiones de pago, pero también se ofrece una distribución «open-source» y gratuita. Se puede descargar desde su página web. Anaconda trae por defecto una gran cantidad de paquetes Python en su distribución.
Miniconda
Miniconda es un instalador «mínimo» que viene con Python y un pequeño número de paquetes útiles.
Gestión de paquetes¶
La instalación limpia1 de Python ya ofrece de por sí muchos paquetes y módulos que vienen por defecto. Es lo que se llama la librería estándar. Pero una de las características más destacables de Python es su inmenso «ecosistema» de paquetes disponibles en el Python Package Index (PyPI).
Para gestionar los paquetes que tenemos en nuestro sistema se utiliza la herramienta pip, una utilidad que también se incluye en la instalación (por defecto) de Python. Con ella podremos instalar, desinstalar y actualizar paquetes, según nuestras necesidades. A continuación se muestran las instrucciones que usaríamos para cada una de estas operaciones:
Entornos virtuales¶
Cuando trabajamos en distintos proyectos, no todos ellos requieren los mismos paquetes ni siquiera la misma versión de Python. La gestión de estas situaciones no es sencilla si únicamente instalamos paquetes y manejamos configuraciones a nivel global (a nivel del sistema). Es por ello que surge el concepto de entornos virtuales. Como su propio nombre indica se trata de crear distintos entornos en función de las necesidades de cada proyecto, lo que nos permite establecer qué versión de Python usaremos y qué paquetes instalaremos dentro del mismo.
La manera más sencilla oficial de crear un entorno virtual es la siguiente:
$ cd myproject #(1)!
$ python -m venv --prompt myproject .venv #(2)!
$ source .venv/bin/activate #(3)!
- Entrar en la carpeta de nuestro proyecto.
- Este comando crea una carpeta
.venv4 con los ficheros que constituyen el entorno virtual. - Activar el entorno virtual. A partir de aquí todo lo que se instale quedará dentro del entorno virtual.
VIRTUAL_ENV
Cuando activamos el entorno virtual se «crea» una variable de entorno VIRTUAL_ENV que contiene la ruta al entorno virtual. Esto es muy útil para tomar decisiones en función de si está activo o no el entorno virtual actual.
pyenv¶
pyenv es una herramienta que permite instalar/cambiar fácilmente entre múltiples versiones de Python en un mismo sistema. Su instalación engloba distintos pasos y está bien explicada en la página del proyecto.
Veamos algunas de sus funcionalidades más interesantes:
-
Listar las versiones instaladas de Python:
Podemos comprobar la versión de Python:
-
Cambiar la versión global de Python:
Podemos comprobar la versión de Python:
-
Instalar una nueva versión de Python:
Comprobamos de nuevo las versiones:
-
Activar una versión local de Python:
Se crea un fichero «oculto»:
pyenv-virtualenv
Existe un «plugin» para pyenv denominado pyenv-virtualenv que permite manejar entornos virtuales utilizando las ventajas que proporciona pyenv.
uv¶
uv es una herramienta para gestionar paquetería y proyectos de Python. Es extremadamente rápida y está escrita en lenguaje Rust.
Proporciona métodos de instalación muy sencillos:
La documentación está muy bien conseguida. A continuación vamos a mostrar algunas de sus funcionalidades más interesantes:
-
Instalar una versión de Python:
La versión de Python que instala uv no está disponible a nivel global del sistema. Se utiliza para crear proyectos o entornos virtuales. -
Listar las versiones disponibles de Python:
Este comando no sólo muestra las versiones de Python instaladas con uv sino también aquellas instaladas a nivel de sistema. -
Crear un proyecto Python:
Este comando crea la estructura necesaria de ficheros para que se pueda mantener el estado del proyecto de manera local. El fichero principal de esta configuración espyproject.toml. -
Añadir dependencias a un proyecto:
Este comando creará automáticamente un entorno virtual.venvdentro de la carpeta del proyecto si aún no está creado, instalará el paquetepytesty actualizará las dependencias enpyproject.toml. -
Crear un entorno virtual:
Este comando crea un entorno virtual en la carpeta.venv -
Lanzar un programa Python:
Este comando permite ejecutar un «script» Python directamente desde uv.En el caso de que el «script» tuviera dependencias externas, podemos usar el siguiente comando:
Editores¶
Existen multitud de editores en el mercado que nos pueden servir perfectamente para escribir código Python. Algunos de ellos incorporan funcionalidades extra y otros simplemente nos permiten editar ficheros.
Cabe destacar aquí el concepto de Entorno de Desarrollo Integrado, más conocido por sus siglas en inglés IDE. Se trata de una aplicación que proporciona servicios integrales para el desarrollo de software.
Cada editor tiene sus características (ventajas e inconvenientes). Supongo que la preferencia por alguno de ellos estará en base a la experiencia y a las necesidades que surjan. La parte buena es que hay diversidad de opciones para elegir.
Plataformas¶
Jupyter¶
Jupyter es un proyecto «open-source» que permite crear y compartir documentos que contienen código, ecuaciones, visualizaciones y texto narrativo. Podemos utilizarlo para propósito general aunque suele estar más enfocado a ciencia de datos: limpieza y transformación de datos, simulación numérica, modelado estadístico, visualización o «machine-learning»5.
Podemos verlo como un intérprete de Python (contiene un «kernel»6 que permite ejecutar código) con la capacidad de incluir documentación en formato Markdown lo que potencia sus funcionalidades y lo hace adecuado para preparar cualquier tipo de material vinculado con lenguajes de programación.
Kernels
Aunque el uso de Jupyter está más extendido en el mundo Python, existen muchos otros «kernels» con los que podemos trabajar.
repl.it¶
repl.it es un servicio web que ofrece un entorno de desarrollo integrado para programar en más de 50 lenguajes (Python incluido).
Permite trabajo colaborativo y dispone de una capa gratuita. Se requiere una cuenta en el sistema para utilizarlo. El hecho de no requerir instalación ni configuración previa lo hace atractivo en determinados escenarios.
En su versión gratuita7 («Starter») repl.it ofrece:
- 2Gb de almacenamiento en disco.
- 2Gb de memoria RAM.
- 10 aplicaciones (proyectos) gratuitos.
- Python 3.11.
- Hasta 3 repositorios públicos.
- Explorador (y subida) de ficheros.
- Gestor de paquetes integrado.
- Integración con GitHub.
- Gestión de secretos (datos sensibles).
- Bases de datos clave-valor ya integrada.
- Acceso (limitado) al sistema operativo y sistema de archivos.
WSL¶
Si estamos trabajando en un sistema Windows (versión 10/11/...) es posible que nos encontremos más cómodos usando una terminal tipo «Linux», entre otras cosas para poder usar con facilidad las herramientas vistas en esta sección y preparar el entorno de desarrollo Python. Durante mucho tiempo esto fue difícil de conseguir hasta que Microsoft ofreció WSL.
WSL nos proporciona una consola con entorno Linux que podemos utilizar en nuestro sistema operativo Windows sin necesidad de instalar una máquina virtual o crear una partición para un Linux nativo. Es importante saber también que existen dos versiones de WSL hoy en día: WSL y WSL2. La segunda tiene mejor rendimiento y se adhiere más al comportamiento de un Linux nativo.
La instalación de WSL tendría que ser tan fácil como wsl --install pero quizás deberías echar un vistazo a la documentación por si hay algo que no vaya bien...
-
También llamada «vanilla installation» ya que es la que viene por defecto y en la que no se realiza ninguna personalización. ↩
-
Como regla general los proyectos hechos en Python suelen tener un fichero
requirements.txtcon las dependencias del proyecto. Un paquete por cada línea con la opción de fijar su versión. ↩ -
La caché de pip es un almacenamiento temporal que acelera la instalación de paquetes. ↩
-
Es una convención llamar
.venval directorio/carpeta que contiene el entorno virtual Python. ↩ -
Término inglés utilizado para hacer referencia a algoritmos de aprendizaje automático. ↩
-
Proceso específico para un lenguaje de programación que ejecuta instrucciones y actúa como interfaz de entrada/salida. ↩
-
Información disponible a la fecha de escritura de este documento. Puede no ser correcta a la fecha de lectura del mismo. ↩