Análisis matricial de armaduras con Python

Anexo C

Trabajar en local

Todo el libro puede seguirse con Google Colab, sin instalar nada. Este anexo es opcional: está pensado para quien quiera usar la calculadora en su propio computador, sin conexión a internet, o incorporarla en programas más grandes.

C.1 Qué necesitamos

Para trabajar en local necesitamos tres cosas:

C.2 El problema de los entornos

Instalar Python es fácil; lo que suele complicarse es instalar los paquetes. Si instalamos todos los paquetes de todos nuestros proyectos en una misma instalación de Python, tarde o temprano dos proyectos necesitarán versiones distintas del mismo paquete, y uno de los dos dejará de funcionar. Además, es frecuente terminar con varias instalaciones de Python en el mismo computador sin saber cuál se está usando.

La solución es un entorno virtual (virtual environment): una carpeta con su propia copia de Python y sus propios paquetes, separada del resto del sistema. Cada proyecto tiene su entorno, y lo que instalamos en uno no afecta a los demás. Hay tres caminos habituales para crearlos:

Para un proyecto pequeño como la calculadora, que solo necesita NumPy y Matplotlib, recomendamos uv o el camino clásico.

C.3 Con uv

Instalamos uv siguiendo las instrucciones de su sitio, docs.astral.sh/uv. Después, en una terminal, creamos un proyecto para la calculadora e instalamos sus paquetes:

uv init mi-calculadora
cd mi-calculadora
uv add numpy matplotlib jupyter

uv descarga la versión de Python que haga falta y crea el entorno dentro de la carpeta del proyecto. Para abrir Jupyter en el navegador, o para ejecutar un archivo de Python con el entorno del proyecto:

uv run jupyter lab
uv run python mi_armadura.py

C.4 Con venv y pip

Instalamos Python desde www.python.org. En Windows, durante la instalación, marcamos la opción Add python.exe to PATH. Después, en una terminal abierta en la carpeta del proyecto, creamos el entorno y lo activamos. En Windows:

python -m venv .venv
.venv\Scripts\activate

En macOS o Linux:

python3 -m venv .venv
source .venv/bin/activate

Con el entorno activo, el nombre (.venv) aparece al comienzo de la línea de la terminal, e instalamos los paquetes:

pip install numpy matplotlib jupyter

El entorno debe activarse de nuevo cada vez que abrimos una terminal. Visual Studio Code lo detecta solo si la carpeta .venv está en el proyecto.

C.5 La calculadora como módulo

En Colab, el motor de la calculadora es la primera celda de nuestro notebook. En local podemos guardarlo en un archivo aparte y usarlo desde cualquier notebook o programa: un archivo .py con funciones que se importa desde otros archivos se llama módulo (module), como math o NumPy.

El repositorio del libro incluye ese archivo, calculadora.py, en la carpeta notebooks. Contiene exactamente el mismo código que la sección Motor de mi\_calculadora.ipynb y se genera a partir de él, de modo que siempre coinciden. Lo copiamos en la carpeta de nuestro proyecto y, en un archivo o notebook de la misma carpeta, importamos las funciones que necesitamos:

from calculadora import (analizar_armadura,
                         mostrar_resultados,
                         verificar_resultados,
                         graficar_resultados)

nodos = {1: {"x": 0.0, "y": 0.0},
         2: {"x": 6.0, "y": 0.0},
         3: {"x": 3.0, "y": 4.0}}
# ... barras, apoyos y cargas, como en el capítulo 3

resultados = analizar_armadura(nodos, barras,
                               apoyos, cargas)
verificar_resultados(nodos, barras, resultados)
mostrar_resultados(nodos, barras, resultados)
graficar_resultados(nodos, barras, resultados)

Si lo ejecutamos como programa, con uv run python mi\_armadura.py o python mi\_armadura.py, los resultados se imprimen en la terminal y los gráficos se abren en una ventana.