Streamlit: Introducción y entorno

Aprende a instalar y configurar correctamente Streamlit con Python 3.13 desde cero. Guía paso a paso para crear el entorno de desarrollo perfecto para tus aplicaciones de ciencia de datos y machine learning con Streamlit.

Aprende Streamlit GRATIS y certifícate

Streamlit se ha establecido como una de las herramientas fundamentales para el desarrollo de aplicaciones web interactivas orientadas a la ciencia de datos y machine learning con Python. Su popularidad radica en la simplicidad que ofrece a programadores y científicos de datos para transformar análisis complejos en aplicaciones web interactivas sin necesidad de conocimientos profundos de desarrollo web.

En esta sección, aprenderás todo lo necesario para instalar y configurar correctamente tu entorno de desarrollo para trabajar con Streamlit y Python 3.13, estableciendo las bases para desarrollar potentes aplicaciones de visualización de datos.

Requisitos previos

Antes de comenzar con la instalación de Streamlit, es necesario asegurarse de tener instalados ciertos componentes básicos:

  • Python 3.13: Streamlit requiere Python 3.7 o superior, pero en este curso utilizaremos la versión más reciente, Python 3.13, para aprovechar todas las mejoras de rendimiento y nuevas funcionalidades.
  • Un editor de código o IDE: Recomendamos Visual Studio Code, PyCharm o cualquier otro editor que te resulte cómodo para desarrollar en Python.
  • Conocimientos básicos de Python y línea de comandos.

Instalación de Python 3.13

Si aún no tienes Python 3.13 instalado en tu sistema, debes comenzar por este paso fundamental:

Para Windows:

  1. Visita el sitio oficial de Python y descarga la versión 3.13.
  2. Ejecuta el instalador descargado y marca la opción "Add Python 3.13 to PATH" durante la instalación.
  3. Selecciona "Customize installation" para personalizar la instalación según tus necesidades.
  4. Completa la instalación siguiendo las instrucciones del asistente.

Para verificar que la instalación se ha realizado correctamente, abre una terminal (cmd o PowerShell) y ejecuta:

python --version

Deberías ver como resultado Python 3.13.x donde x es la versión específica instalada.

Para macOS:

En macOS, recomendamos utilizar Homebrew para gestionar la instalación:

  1. Si no tienes Homebrew instalado, abre Terminal y ejecuta:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Una vez instalado Homebrew, instala Python 3.13:
brew install python@3.13
  1. Verifica la instalación con:
python3 --version

Para Linux (Ubuntu/Debian):

En distribuciones basadas en Debian como Ubuntu, puedes utilizar apt o compilar desde la fuente:

  1. Actualiza los repositorios:
sudo apt update
sudo apt upgrade
  1. Instala las dependencias necesarias:
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget
  1. Descarga e instala Python 3.13:
wget https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz
tar -xf Python-3.13.0.tgz
cd Python-3.13.0
./configure --enable-optimizations
make -j $(nproc)
sudo make altinstall
  1. Verifica la instalación:
python3.13 --version

Creación de un entorno virtual

Trabajar con entornos virtuales es una práctica altamente recomendada en el desarrollo Python. Los entornos virtuales te permiten aislar las dependencias de cada proyecto, evitando conflictos entre diferentes versiones de bibliotecas.

En Python 3.13, puedes crear un entorno virtual utilizando el módulo integrado venv:

python -m venv streamlit-env

Este comando creará un nuevo directorio llamado streamlit-env que contendrá tu entorno virtual.

Para activar el entorno virtual:

En Windows (PowerShell):

.\streamlit-env\Scripts\Activate.ps1

En Windows (cmd):

streamlit-env\Scripts\activate.bat

En macOS y Linux:

source streamlit-env/bin/activate

Una vez activado el entorno virtual, notarás que el nombre del entorno aparece al inicio de la línea de comandos, indicando que estás trabajando dentro de ese entorno aislado.

Instalación de Streamlit

Con el entorno virtual activado, ahora podemos instalar Streamlit utilizando pip, el gestor de paquetes de Python:

pip install streamlit

Este comando descargará e instalará la última versión estable de Streamlit junto con todas sus dependencias. El proceso puede tardar unos minutos dependiendo de tu conexión a internet y la capacidad de procesamiento de tu ordenador.

Para verificar que Streamlit se ha instalado correctamente, puedes ejecutar:

streamlit --version

Esto debería mostrar la versión instalada de Streamlit.

Creación de tu primera aplicación Streamlit

Para confirmar que todo funciona correctamente, vamos a crear una aplicación sencilla de prueba:

  1. Crea un nuevo archivo llamado hello_streamlit.py con el siguiente contenido:
import streamlit as st

st.title("Mi primera aplicación con Streamlit")

st.write("¡Hola, mundo! Esta es mi primera aplicación Streamlit funcionando correctamente.")

nombre = st.text_input("Escribe tu nombre:")
if nombre:
st.write(f"Hola, {nombre}! Bienvenido/a al mundo de Streamlit.")

st.subheader("Visualización de datos básica")
import numpy as np
import pandas as pd

# Generamos algunos datos de ejemplo
datos = pd.DataFrame(
np.random.randn(10, 3),
columns=["A", "B", "C"]
)

st.write("Datos generados aleatoriamente:")
st.dataframe(datos)

st.line_chart(datos)
  1. Ejecuta la aplicación con el siguiente comando:
streamlit run hello_streamlit.py
  1. Automáticamente se abrirá una nueva pestaña en tu navegador web mostrando tu aplicación Streamlit en funcionamiento. Por defecto, la aplicación estará disponible en http://localhost:8501.

Estructura de directorios recomendada

Para mantener tus proyectos Streamlit organizados, te recomendamos seguir una estructura de directorios como la siguiente:

mi_proyecto_streamlit/
├── streamlit-env/           # Entorno virtual
├── app.py                   # Punto de entrada principal de la aplicación
├── pages/                   # Directorio para páginas adicionales
│   ├── page1.py
│   └── page2.py
├── utils/                   # Funciones de utilidad
│   └── helpers.py
├── data/                    # Datos utilizados por la aplicación
│   └── dataset.csv
├── models/                  # Modelos entrenados
│   └── model.pkl
├── static/                  # Recursos estáticos (imágenes, CSS, etc.)
│   └── logo.png
└── requirements.txt         # Dependencias del proyecto

Esta estructura facilita la organización y mantenimiento del código a medida que tu aplicación crece en complejidad.

Gestión de dependencias

Es importante mantener un registro de las dependencias de tu proyecto para facilitar su reproducción en otros entornos. Para hacerlo:

  1. Genera un archivo requirements.txt con las dependencias actuales:
pip freeze > requirements.txt
  1. Para instalar las dependencias en otro entorno:
pip install -r requirements.txt

Entre las dependencias básicas que suelen utilizarse en proyectos Streamlit, además del propio Streamlit, se encuentran:

  • NumPy: Para operaciones numéricas eficientes.
  • Pandas: Para manipulación y análisis de datos.
  • Matplotlib y Seaborn: Para visualizaciones estáticas.
  • Plotly: Para gráficos interactivos.
  • scikit-learn: Para implementar modelos de machine learning.

Puedes instalarlas todas juntas con:

pip install numpy pandas matplotlib seaborn plotly scikit-learn

Optimización del entorno de desarrollo

Para mejorar tu experiencia de desarrollo con Streamlit, considera estas configuraciones adicionales:

1. Habilitar el modo de recarga automática

Crea un archivo config.toml en la carpeta .streamlit en tu directorio de usuario:

En Windows:

%USERPROFILE%\.streamlit\config.toml

En macOS/Linux:

~/.streamlit/config.toml

Con el siguiente contenido:

[server]
runOnSave = true

[browser]
serverAddress = "localhost"
serverPort = 8501

Esto hará que la aplicación se recargue automáticamente cuando guardes cambios en el código.

2. Integración con VSCode

Si utilizas Visual Studio Code, puedes mejorar tu flujo de trabajo instalando las siguientes extensiones:

  • Python: Proporciona soporte completo para el desarrollo en Python.
  • Pylance: Ofrece funciones avanzadas de autocompletado e información de tipos.
  • Jupyter: Para trabajar con notebooks directamente en VSCode.

3. Debugging de aplicaciones Streamlit

Para depurar aplicaciones Streamlit de manera efectiva:

  1. Utiliza st.write() o st.json() para inspeccionar variables.
  2. Implementa el registro de errores con:
import logging

logging.basicConfig(
    level=logging.INFO,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    handlers=[
        logging.FileHandler("debug.log"),
        logging.StreamHandler()
    ]
)

logger = logging.getLogger(__name__)

try:
    # Tu código aquí
    resultado = operacion_compleja()
except Exception as e:
    logger.error(f"Error en la operación: {str(e)}")
    st.error("Ha ocurrido un error. Consulta los logs para más detalles.")

Consideraciones de rendimiento

Al desarrollar aplicaciones Streamlit, ten en cuenta estas prácticas para optimizar el rendimiento:

  1. Utiliza @st.cache_data y @st.cache_resource para almacenar en caché operaciones costosas:
@st.cache_data
def cargar_datos(url):
    return pd.read_csv(url)

df = cargar_datos("https://ejemplo.com/datos.csv")
  1. Procesa los datos en lotes cuando trabajes con conjuntos grandes:
@st.cache_data
def procesar_por_lotes(df, batch_size=1000):
    resultados = []
    for i in range(0, len(df), batch_size):
        batch = df.iloc[i:i+batch_size]
        # Procesar batch
        resultados.append(resultado_del_procesamiento)
    return pd.concat(resultados)
  1. Utili
Empezar curso de Streamlit

Lecciones de este módulo de Streamlit

Lecciones de programación del módulo Introducción y entorno del curso de Streamlit.