Configuracion del Entorno de Trabajo

Antes de empezar a programar, vamos a preparar nuestro “espacio de trabajo” correctamente.

Por que necesitamos un entorno virtual?

Analogia: Tu habitacion vs el salon

Imagina que estas haciendo un proyecto de manualidades:

  • Sin entorno virtual = Trabajar en el salon de casa
    • Tus materiales se mezclan con los de todos
    • Si cambias algo, afecta a toda la casa
    • Dificil de limpiar despues
  • Con entorno virtual = Trabajar en tu propia habitacion
    • Tus herramientas estan separadas
    • Puedes experimentar sin romper nada
    • Facil de limpiar (borras la carpeta)

En Python

Sin entorno virtual:

  • Todas las librerias se instalan globalmente
  • Proyectos diferentes pueden tener conflictos
  • Dificil reproducir el proyecto en otro ordenador

Con entorno virtual:

  • Cada proyecto tiene sus propias librerias
  • No hay conflictos entre proyectos
  • Facil de compartir y reproducir

¿Por qué usar uv en cada proyecto?

Cuando se trabaja con varios proyectos de Python, cada uno puede necesitar versiones diferentes de las mismas librerías.
Si todo se instala en el sistema sin separación, las librerías se mezclan y pueden generar errores difíciles de entender.

Por eso es recomendable que cada proyecto tenga su propio entorno independiente, para que lo que se instale en uno no afecte a los demás.

¿Qué aporta uv?

uv permite crear estos entornos de manera automática y rápida.
Gestiona las librerías dentro de cada proyecto sin que el usuario tenga que configurar nada complicado.
También evita que los proyectos interfieran entre sí y asegura que todos los estudiantes tengan exactamente el mismo entorno, sin importar el ordenador que usen.


¿Qué es uv?

uv es:

  • Un gestor de paquetes y proyectos para Python, extremadamente rápido, escrito en Rust, creado por Astral .

  • Un sistema todo‑en‑un que unifica:

    • instalación de paquetes
    • gestión de entornos
    • resolución y bloqueo de dependencias
    • manejo de versiones de Python
    • ejecución de herramientas aisladas
    • creación y administración de proyectos

PARTE 1: Instalar uv

En Windows

  1. Abrir CMD (buscar “cmd” en el menú Inicio).
  2. Escribir:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

y teclear Enter

En macOS / Linux

1.- Abreir Terminal 2.- Teclear:

curl -LsSf https://astral.sh/uv/install.sh | sh

y darle a enter.

Verificar instalacion

Cierra y vuelve a abrir la terminal, luego:

uv --version

Deberias ver algo como: uv 0.9.5


PARTE 2: Crear tu proyecto

Paso 1: Crear la carpeta del proyecto

# Crear proyecto
uv init clase_jupyter

Que hace uv init?

Crea automaticamente:

  • .git/ - Repositorio Git inicializado
  • .gitignore - Archivo para ignorar archivos en Git
  • .python-version - Version de Python del proyecto
  • pyproject.toml - Configuracion del proyecto
  • main.py - Archivo de ejemplo (puedes borrarlo)
  • README.md - Documentacion basica del proyecto

Nota: El entorno virtual .venv/ se creara automaticamente cuando ejecutes comandos como uv add, uv sync o uv run.


Paso 2: Entender la estructura

Para ver la estructura creada, ejecuta:

cd clase_jupyter
ls -la  # Linux/Mac
# o
dir /a  # Windows

Despues de uv init, tu carpeta se ve asi:

clase_jupyter/
├── .git/               <- Repositorio Git (control de versiones)
├── .gitignore          <- Archivos que Git debe ignorar
├── .python-version     <- Version de Python a usar
├── pyproject.toml      <- Configuracion del proyecto
├── main.py             <- Ejemplo (puedes borrarlo o renombrarlo)
└── README.md           <- Documentacion del proyecto

El .venv/ aparecera despues cuando añadas dependencias.


Paso 2.1: Que es pyproject.toml?

pyproject.toml es el archivo de configuracion estandar de proyectos Python modernos.

Piensalo como la “tarjeta de identidad” de tu proyecto: contiene toda la informacion importante sobre el.

Ver el contenido

Para ver que contiene, ejecuta:

cat pyproject.toml     # Linux/Mac
type pyproject.toml    # Windows

Contenido que veras:

[project]
name = "clase-jupyter"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []

Explicacion linea por linea

Seccion [project] - Informacion del proyecto:

  • name = "clase-jupyter"
    • Que es: El nombre de tu proyecto/paquete
    • Nota: uv convierte _ en - automaticamente (es la convencion estandar)
  • version = "0.1.0"
    • Que es: Version actual de tu proyecto
    • Formato: major.minor.patch (ej: 1.0.0, 2.3.1)
  • description = "Add your description here"
    • Que es: Breve descripcion de que hace tu proyecto
    • Puedes cambiarlo: Ej: “Agente tutor de Python con IA”
  • readme = "README.md"
    • Que es: Indica cual es el archivo de documentacion principal
  • requires-python = ">=3.13"
    • Que es: Version minima de Python requerida
    • Significado: Tu proyecto necesita Python 3.13 o superior
  • dependencies = []
    • Que es: Lista de librerias que tu proyecto necesita
    • Estado actual: Vacia (aun no hemos instalado nada)
    • Ejemplo futuro: dependencies = ["anthropic>=0.39.0", "openai>=1.54.0"]

Cuando se modifica este archivo?

Este archivo se actualiza automaticamente cuando:

  • Ejecutas uv add nombre-libreria → Añade la libreria a dependencies
  • Ejecutas uv remove nombre-libreria → La quita de dependencies

Tambien puedes editarlo manualmente para cambiar el nombre, descripcion o version del proyecto.

Ejemplo: Despues de instalar librerias

Si ejecutas:

uv add anthropic

El archivo cambiara a:

[project]
name = "clase-jupyter"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "anthropic>=0.39.0",    # <- Se añadio automaticamente
]

En resumen

pyproject.toml es como el DNI de tu proyecto:

  • Dice como se llama
  • Que version tiene
  • Que necesita para funcionar (dependencias)
  • Con que Python funciona

No necesitas editarlo manualmente - uv lo gestiona por ti cuando instalas o quitas librerias.


Paso 3: Crear y activar el entorno virtual

3.1: Crear el entorno virtual

IMPORTANTE: Debes estar dentro de la carpeta del proyecto para crear el entorno virtual.

# Asegurarte de estar en la carpeta del proyecto
cd clase_jupyter

# Crear el entorno virtual
uv venv

Que hace? Crea la carpeta .venv/ dentro del proyecto donde se instalaran todos los paquetes de Python.

Verificar: Ejecuta ls -la (o dir /a en Windows) y deberias ver .venv/ en la lista.

Estructura resultante:

clase_jupyter/
├── .venv/              <- Se creo aqui
├── .git/
├── .python-version
├── pyproject.toml
├── main.py
└── README.md

3.2: Activar el entorno virtual

Una vez creado, puedes activarlo de dos formas:

Opcion A: Desde la terminal (luego abrir VS Code)

En Windows (PowerShell):

.venv\Scripts\Activate.ps1

En Windows (CMD):

.venv\Scripts\activate.bat

En macOS / Linux:

source .venv/bin/activate

Como se que esta activado?

Veras (.venv) al inicio de tu linea de comandos:

(.venv) C:\Users\tu-nombre\clase_jupyter>

Ahora abrir Visual Studio Code VSC:

code .

Ventaja: VS Code detectara automaticamente que el entorno ya esta activado y lo usara.


Opcion B: Activar directamente en Visual Studio Code

Si abriste VS Code sin activar el entorno antes:

  1. Abre el proyecto en VS Code:
code .
  1. Abre el Command Palette:

    • Ctrl + Shift + P (Windows/Linux)
    • Cmd + Shift + P (Mac)
  2. Escribe y selecciona: Python: Select Interpreter

  3. Selecciona el interprete que dice:

Python 3.13.x ('.venv': venv) ./.venv/Scripts/python.exe
  1. Verificar: Mira la barra inferior derecha de VS Code. Deberia aparecer:
Python 3.13.x ('.venv': venv)

Una vez seleccionado, VS Code usara automaticamente este entorno para:

  • Ejecutar codigo
  • Autocompletado
  • Deteccion de errores
  • Terminal integrada

3.3: Trabajar con Jupyter Notebooks (Opcional)

Si quieres usar Jupyter Notebooks en tu proyecto:

Paso 1: Instalar Jupyter e ipykernel

# Opcion 1: Jupyter Notebook (clasico)
uv add --dev jupyter ipykernel

# Opcion 2: JupyterLab (mas moderno, recomendado)
uv add --dev jupyterlab ipykernel

Nota: Usamos --dev porque son herramientas de desarrollo, no dependencias del proyecto final.


Paso 2: Registrar el kernel del entorno

uv run python -m ipykernel install --user --name=clase_jupyter --display-name="Python (clase_jupyter)"

Que hace esto? Registra el entorno virtual como un kernel disponible en Jupyter.


Paso 3: Lanzar Jupyter

# Jupyter Notebook
uv run jupyter notebook

# O JupyterLab (recomendado)
uv run jupyter lab

Esto abrira Jupyter en tu navegador.


Paso 4: Seleccionar el kernel correcto

Cuando crees o abras un notebook:

  1. Mira la esquina superior derecha (nombre del kernel)
  2. Si no dice “Python (clase_jupyter)”, haz click ahi
  3. Selecciona “Python (clase_jupyter)” de la lista

Ahora podras ejecutar celdas con todas las librerias de tu proyecto (anthropic, openai, etc.).


Verificar que funciona:

En una celda de Jupyter, ejecuta:

import sys
print(sys.executable)

Deberia mostrar una ruta dentro de tu .venv/.


Eliminar Jupyter (si no lo necesitas):

uv remove jupyter ipykernel
# o
uv remove jupyterlab ipykernel

3.4: Desactivar el entorno (cuando termines)

Desde la terminal:

deactivate

En VS Code no necesitas desactivarlo, simplemente cierra el editor.


Resumen del flujo completo

# 1. Crear proyecto
uv init clase_jupyter

# 2. Entrar a la carpeta
cd clase_jupyter

# 3. Crear entorno virtual
uv venv

# 4. Activar (opcional, pero recomendado)
.venv\Scripts\Activate.ps1  # Windows PowerShell
source .venv/bin/activate    # Linux/Mac

# 5. Abrir VS Code (con entorno activado)
code .

# 6. (Opcional) Instalar Jupyter si lo necesitas
uv add --dev jupyterlab
uv run jupyter lab