VS Code: depura Python con breakpoints

Actualizado el: 20/08/2026
Tempo de leitura: 6 minutos
Debug de aplicações Python no Visual Studio Code

Cuando un programa en Python se ejecuta pero produce un resultado incorrecto, añadir más llamadas a print() puede convertirse rápidamente en una solución difícil de mantener. Un depurador permite pausar el programa, inspeccionar valores, ejecutar una línea cada vez y comprender exactamente cómo el código llegó a un determinado estado.

En esta guía aprenderás a depurar Python en VS Code con breakpoints, controles paso a paso, variables, panel Watch, pila de llamadas, puntos condicionales, logpoints y configuraciones de launch.json. También revisaremos problemas frecuentes relacionados con el intérprete y los entornos virtuales.

Qué necesitas

Instala Visual Studio Code, Python y la extensión oficial de Python de Microsoft. La extensión Python Debugger proporciona el adaptador utilizado en las sesiones actuales.

La documentación oficial de depuración de Python en VS Code explica las configuraciones y controles disponibles.

Abrir una carpeta de proyecto

Abre la carpeta completa que contiene tus archivos, no solamente un archivo suelto. Una carpeta de trabajo permite guardar configuraciones, detectar entornos virtuales y crear .vscode/launch.json.

Crea carrito.py:

def calcular_total(precios, descuento=0):
    subtotal = sum(precios)
    valor_descuento = subtotal * descuento
    return subtotal - valor_descuento


articulos = [19.90, 5.50, 12.00]
total = calcular_total(articulos, descuento=10)
print(f"Total: {total:.2f}")

El código tiene un error lógico: la función espera un descuento decimal como 0.10, pero recibe 10. La sintaxis es válida, así que Python ejecuta el archivo y muestra un total negativo.

Seleccionar el intérprete correcto

Haz clic en el indicador de Python de la barra inferior o ejecuta Python: Select Interpreter desde la paleta de comandos. Elige el entorno donde estén instaladas las dependencias del proyecto.

Un intérprete incorrecto puede causar paquetes ausentes, una versión inesperada de Python o variables de entorno diferentes.

Crear el primer breakpoint

Haz clic en el margen izquierdo junto a esta línea:

valor_descuento = subtotal * descuento

Aparecerá un punto rojo. El depurador pausará antes de ejecutar esa línea. También puedes alternar un breakpoint con F9.

Iniciar la depuración

Abre el archivo, entra en Run and Debug y pulsa F5. En un script sencillo, selecciona la configuración para el archivo Python actual.

Cuando el programa se detiene, VS Code muestra Variables, Watch, Call Stack y Breakpoints. La línea activa aparece resaltada.

Inspeccionar variables

En el ejemplo, revisa:

  • precios: la lista de valores.
  • descuento: contiene 10.
  • subtotal: suma de los precios.

El valor de descuento revela la causa. Corrige la llamada:

total = calcular_total(articulos, descuento=0.10)

Controles principales

  • Continue (F5): continúa hasta el siguiente breakpoint.
  • Step Over (F10): ejecuta la línea sin entrar en funciones llamadas.
  • Step Into (F11): entra en la función de la línea actual.
  • Step Out (Shift + F11): termina la función actual.
  • Restart: reinicia la sesión.
  • Stop (Shift + F5): finaliza la depuración.

Step Over y Step Into

def aplicar_impuesto(importe, tasa):
    return importe * (1 + tasa)


def crear_factura(precios):
    subtotal = sum(precios)
    total = aplicar_impuesto(subtotal, 0.08)
    return total


print(crear_factura([10, 20, 30]))

Si estás en la llamada a aplicar_impuesto(), Step Over calcula el resultado y permanece en crear_factura(). Step Into abre la función para inspeccionar importe y tasa.

Panel Watch

Watch recalcula expresiones cada vez que la ejecución se pausa:

subtotal * descuento
len(precios)
subtotal - valor_descuento
all(precio >= 0 for precio in precios)

Evita expresiones con efectos secundarios porque podrían modificar el estado del programa.

Debug Console

Con el programa pausado, puedes evaluar expresiones:

subtotal
precios[0]
type(descuento)
subtotal * 0.10

La consola es útil para experimentar, pero los cambios desaparecen al reiniciar. La solución definitiva debe guardarse en el código.

Comprender la pila de llamadas

Call Stack muestra el camino seguido hasta la línea actual:

main
crear_informe
calcular_promedio
validar_valores

Al seleccionar un marco, VS Code muestra las variables locales de esa función. Es especialmente útil cuando el error aparece lejos del punto donde se originaron los datos.

Breakpoints condicionales

En un bucle grande, no conviene detenerse en cada iteración.

pedidos = [15, 42, -8, 27, 100]

for indice, importe in enumerate(pedidos):
    procesado = importe * 1.1
    print(indice, procesado)

Haz clic derecho sobre el breakpoint y añade una condición como:

importe < 0
indice == 3
procesado > 50

Hit counts y logpoints

Un hit count pausa después de que una línea se ejecute cierto número de veces. Un logpoint escribe un mensaje en la consola sin detener el programa.

Ejemplo de logpoint:

Procesando pedido {indice}: importe={importe}

Para registros permanentes, utiliza el módulo logging. Los logpoints son una ayuda temporal del editor.

Depurar excepciones

En la sección Breakpoints puedes activar la pausa cuando se genera una excepción.

def promedio(valores):
    return sum(valores) / len(valores)


print(promedio([]))

Al detenerse en ZeroDivisionError, verás que la lista está vacía y podrás seguir la pila para localizar su origen.

Crear launch.json

Los archivos sencillos no necesitan configuración. Utiliza launch.json cuando debas pasar argumentos, variables de entorno, un directorio de trabajo o un módulo concreto.

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Depurar archivo Python actual",
      "type": "debugpy",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true
    }
  ]
}

Pasar argumentos

{
  "name": "Depurar informe",
  "type": "debugpy",
  "request": "launch",
  "program": "${workspaceFolder}/informe.py",
  "args": ["ventas.csv", "--formato", "json"],
  "console": "integratedTerminal"
}

No guardes contraseñas ni tokens dentro de esta configuración.

Depurar pruebas

La vista Testing permite descubrir pruebas de unittest y pytest. Coloca un breakpoint en la aplicación o en la prueba y utiliza la opción de depuración.

La guía de Pytest en Python explica cómo crear pruebas, comprobar excepciones y organizar archivos.

Problemas frecuentes

El breakpoint aparece gris

Guarda el archivo, confirma que es el archivo ejecutado y revisa el intérprete y la configuración seleccionada.

No se puede importar un paquete

Selecciona el entorno donde se instaló la biblioteca y compara su ruta con la terminal.

input() no funciona

Utiliza integratedTerminal para programas interactivos.

El depurador entra en bibliotecas

Mantén justMyCode activado para trabajar principalmente con tu propio código.

El programa se comporta distinto

Compara el directorio de trabajo, los argumentos, las variables de entorno y el intérprete con la ejecución habitual.

Rutina práctica de depuración

  1. Reproduce el problema con una entrada pequeña.
  2. Lee el error completo o describe el resultado incorrecto.
  3. Coloca un breakpoint antes del primer estado sospechoso.
  4. Inspecciona entradas y suposiciones.
  5. Avanza una decisión cada vez.
  6. Utiliza la pila de llamadas para localizar el origen.
  7. Corrige la causa, no solamente el síntoma.
  8. Añade una prueba que evite la regresión.

Conclusión

Para depurar Python en VS Code de forma eficaz, comienza con el intérprete correcto, pausa antes del posible fallo, revisa variables y sigue las decisiones con los controles paso a paso. Los breakpoints condicionales y logpoints ayudan en bucles grandes, mientras que launch.json hace reproducibles las ejecuciones complejas.

La mejor práctica combina depuración, mensajes de error claros, logging y pruebas automatizadas.

Lecturas relacionadas

Configuración oficial de Python en VS Code

La documentación de Microsoft sobre entornos de Python en VS Code complementa la guía de depuración y explica cómo seleccionar intérpretes, detectar entornos virtuales y configurar el proyecto.

Compartilhe:

Facebook
WhatsApp
Twitter
LinkedIn

Contenido del artículo

    Artículos relacionados

    Comparativo dos melhores cursos de Python para aprender programação
    IDEs y Herramientas
    Foto de perfil de Leandro Hirt da Academify

    Mejores cursos de Python para principiantes en 2026

    Compara CS50P, el MOOC de Helsinki, el tutorial oficial, Google y Kaggle y crea una ruta práctica para aprender Python

    Ler mais

    Tempo de leitura: 8 minutos
    12/07/2026
    Mesa de trabalho com dois monitores
    IDEs y Herramientas
    Foto de perfil de Leandro Hirt da Academify

    Mejores IDEs para Python en 2026: cuál elegir

    Compara VS Code, PyCharm, Thonny, JupyterLab, Spyder e IDLE y elige el mejor entorno para aprender, analizar datos o desarrollar

    Ler mais

    Tempo de leitura: 7 minutos
    12/07/2026
    Transformando script Python em executável EXE rapidamente
    IDEs y Herramientas
    Foto de perfil de Leandro Hirt da Academify

    Cómo convertir un script de Python en un ejecutable EXE

    Convierte scripts Python en EXE con PyInstaller, onefile, windowed, iconos, archivos de datos, SPEC, rutas persistentes y pruebas de distribución.

    Ler mais

    Tempo de leitura: 5 minutos
    12/07/2026
    Tela do VS Code mostrando o marketplace de extensões com destaque para a extensão Python da Microsoft
    IDEs y Herramientas
    Foto de perfil de Leandro Hirt da Academify

    10 extensiones de VS Code para programar en Python

    Configura VS Code para Python con extensiones de análisis, formato, pruebas, notebooks, Git, Docker y trabajo remoto sin duplicar herramientas.

    Ler mais

    Tempo de leitura: 6 minutos
    12/07/2026
    Imagem com a logo do PyCharm
    IDEs y Herramientas
    Foto de perfil de Leandro Hirt da Academify

    PyCharm para Python: instalación y configuración

    Instala y configura PyCharm con el intérprete correcto, entornos virtuales, pip, depuración, pruebas, Git y solución de errores comunes.

    Ler mais

    Tempo de leitura: 6 minutos
    11/07/2026
    Instalador do Python com a opção "Add Python.exe to PATH" marcada
    IDEs y Herramientas
    Foto de perfil de Leandro Hirt da Academify

    Instala Python en Windows: PATH, pip y venv

    Instala Python en tu PC paso a paso, configura PATH, verifica pip, usa IDLE, crea entornos virtuales y resuelve errores

    Ler mais

    Tempo de leitura: 6 minutos
    11/07/2026