1. Puesta a punto del entorno

Esta lección es un onboarding para dejar el ordenador listo antes de empezar. Está pensada para Windows. No cuenta como lección de clase: la sigues en casa y llegas al aula con todo funcionando.

No tengas prisa. La mitad de los problemas que arrastra la gente durante un curso entero vienen de un entorno mal montado el primer día.

Instalar las herramientas

Vamos a instalar dos cosas: uv y Python.

uv es la herramienta que lo une todo. Instala Python por ti y gestiona las dependencias del proyecto sin que tengas que pelearte con versiones. Si vienes de instalar Python a mano desde la web, olvida ese camino: con uv es más rápido y da menos problemas.

Una vez instalado uv, Python se instala con una sola orden, sin descargar nada de la web de Python:

uv python install

Cuando termines, comprueba que responde:

uv --version

Si te devuelve un número de versión, vas bien.

Arrancar un proyecto

Con las herramientas puestas, crear un proyecto es cuestión de segundos:

uv init metocean-tools
cd metocean-tools

uv init crea la estructura básica y el pyproject.toml (la lista de dependencias del proyecto).

Después creamos y activamos el entorno virtual:

uv venv
.venv\Scripts\activate

Un entorno virtual es una carpeta que aísla las dependencias de este proyecto de las del resto del sistema. Así, si un proyecto necesita una versión de una librería y otro necesita otra, no se pelean.

Y añadimos dependencias cuando las necesitemos. Por ejemplo, una librería para validar datos de entrada:

uv add msgspec

uv add descarga la librería y anota la versión exacta en pyproject.toml. Ese detalle es oro: significa que un compañero puede copiar tu proyecto y reproducirlo sin esos errores raros de "en mi máquina funciona".

Configurar VSCode para Python

Recomendamos VSCode como editor. Es uno de los más usados, así que si te atascas es más fácil encontrar a alguien que te eche una mano. Ahora que ya tienes el proyecto creado, ábrelo en el editor (Archivo > Abrir carpeta y elige metocean-tools) y vamos a afinarlo, porque de fábrica viene bastante pelado para Python.

Varios de los pasos que siguen usan la paleta de comandos, que es el mando a distancia del editor: la abres con Ctrl+Shift+P (o con F1), escribes el nombre de una acción y la ejecutas. Si prefieres, escribe > en la barra de búsqueda de arriba y llegas al mismo sitio.

  • Instala la extensión oficial Python (de Microsoft) y Pylance, que te da autocompletado e inteligencia de código.
  • Instala la extensión Ruff, que te avisa de problemas y formatea el código. Lee la configuración del pyproject.toml del proyecto, así que todo el equipo formatea igual.
  • Selecciona el intérprete correcto: abre la paleta de comandos, busca Python: Select Interpreter y elige el del entorno virtual .venv que acabas de crear (aparece como .venv o Python 3.x ('.venv')). La extensión suele detectarlo sola en cuanto abres la carpeta del proyecto, pero conviene saber hacerlo a mano.
  • Activa formatear al guardar: la forma rápida es abrir los ajustes con Ctrl+,, buscar Format On Save y marcar la casilla. Pero para que Ruff sea el formateador de Python y todo el equipo lo tenga igual, lo mejor es dejarlo escrito en el .vscode/settings.json del proyecto, que te muestro justo al final de esta sección.
  • Configura el panel de pruebas (Test Explorer): busca Python: Configure Tests y elige pytest. Todavía no tienes tests ni pytest instalado (llegan en la lección de testing), así que de momento es solo dejarlo preparado: en cuanto los tengas, podrás ejecutar y depurar los tests desde la barra lateral con un clic.
  • Familiarízate con el depurador: pon un punto de interrupción (un clic en el margen izquierdo, junto al número de línea) y ejecuta paso a paso. Es muchísimo más útil que llenar el código de print, y lo veremos en detalle más adelante, en la lección de testing.

Toda esta configuración se comparte con el equipo a través del archivo .vscode/settings.json del proyecto. Créalo con este contenido y todos arrancaréis igual:

{
    "editor.formatOnSave": true,
    "[python]": {
        "editor.defaultFormatter": "charliermarsh.ruff",
        "editor.codeActionsOnSave": {
            "source.organizeImports.ruff": "explicit"
        }
    }
}

Con eso, cada vez que guardes un archivo Python, Ruff lo formatea y ordena los imports por ti, sin que tengas que acordarte. charliermarsh.ruff es el identificador de la extensión de Ruff: le dice a VSCode qué formateador usar.

Y con esto el entorno queda listo. En la siguiente lección recuperamos este mismo proyecto y lo usamos como punto de partida, sin volver a instalar nada.

Desafíos de programación atemporales y multiparadigmáticos

Desafíos de programación atemporales y multiparadigmáticos

Te encuentras ante un librillo de actividades, divididas en 2 niveles de dificultad. Te enfrentarás a los casos más comunes que te puedes encontrar en pruebas técnicas o aprender conceptos elementales de programación.

Comprar el libro

Ayúdame a seguir escribiendo

Cada café me da un empujón para escribir el siguiente artículo.

Comentarios

Todavía no hay ningún comentario.