depurar código vs code

Depurando #Python en VS Code/Codium


Novato como soy en su manejo, me he animado a compartir con vosotros unos pequeños apuntes en los que he ido dejando constancia de cómo utilizar el depurador de VS Code o VS Codium que espero os resulte de utilidad a los que como yo estáis empezando con él a mejorar vuestro flujo de trabajo depurando código en Python

Uso básico del depurador

VS Code incluye un depurador de código de forma nativa permitiendo añadir puntos de ruptura y tracear la ejecución de nuestro código.

Su funcionamiento es el mismo que el de todos aquellos lenguajes que no requieren el uso de un servidor web (para este último caso también tengo algunas anotaciones de PHP y Docker que igual os resultan de interés… sólo tenéis que pedirlos a través de los comentarios si os interesa 😉)

Su funcionamiento es realmente sencillo

  • Ponemos puntos de ruptura haciendo click sobre la línea en la que queremos parar la ejecución
  • Y usamos F5 para arrancar el depurador

Como en muchos lenguajes (ver el óvalo en la parte superior derecha) podemos:

  • Continuar la ejecución (F5)
  • Ejecutar un paso
    • sin entrar en la función o método (F10)
    • entrando (F11)
  • Salir de la función o método en la que nos encontremos (Shift+F11)

Es posible tanto desactivar un punto de interrupción concreto

Como deshabilitar (o eliminar) todos los puntos de interrupción que tengamos en nuestro código (recuerda acceder con CTRL+Shift+P y que puedes definir un atajo de teclado si usas mucho dichas opciones 👍)

Python y venv

En ocasiones VS Code parece ignorar los puntos de ruptura que incluimos y, tras varias pruebas, encuentro que se hace un lío.

Cuando esto ocurra,

  1. Crea un workspace nuevo
  2. Selecciona el entorno virtual que deseas utilizar
  3. Si lo has creado desde el propio editor, deberás cerrar (y volver a abrir) VS Code porque no suele ver ni la creación ni la destrucción de entornos virtuales “en caliente”

Python y args

Si necesitas depurar programas pasando argumentos en la línea de comandos lo más sencillo que he encontrado hasta la fecha es definir diferentes perfiles según las necesidades que tengamos.

Todo el truco está en añadir el parámetro args al fichero launch.json

Observa que parámetro (-r) y su valor (5) van por separado.

Aunque puedes estar continuamente modificando el fichero JSON, te recomiendo que crees (sobre todo si tienes distintas configuraciones que pruebes habitualmente) una entrada para cada uno de los perfiles de “debug” más habituales

De esta forma sólo tendrás que seleccionar aquel que deseas depurar (sin tener que estar cambiando valores cada vez)

Observa que el perfil de debug que tengas seleccionado, será el que se lance si en cualquier momento (mientras editas tu código) pulsas la tecla F5 de depuración

Conclusión

Pequeña reseña en la que incluyo una serie de recomendaciones para depurar programas en Python usando VS Code o VS Codium que espero te resulten de utilidad.

Y tú…

  • ¿Compartirías tus trucos para depurar código en VS Code?
  • ¿Utilizas la posibilidad de pasar argumentos al ejecutar un script?
  • ¿Eres de VS Code o de VS Codium?
  • ¿Nos regalas algún consejo para ser más eficiente con VS Code?

2 comentarios en “Depurando #Python en VS Code/Codium

  1. Para mí lo más importante es segmentar lo más posible el código y utilizar la función type(variable), más incluso que depurar

    Muchos de los errores de programación vienen porque esperas una variable por ejemplo un string y por la razón que sea te viene una lista, o al revés.

    por ejemplo

    i = 0
    print(type(i))

    i = ‘A’
    print(type(i))

    i = [‘hola’]
    print(type(i))

    i = {‘Clave’: ‘hola’}
    print(type(i))

    Para mí es importante tener control del valor del tipo y del valor de las variables.

    Me gusta

    1. Gran verdad amigo Julio… nada como un lenguaje «fuertemente tipado» para evitar tener que estar haciendo comprobaciones como las que sugieres 😅👍🏻

      De todos modos, la depuración es útil en otros escenarios y, aunque he vivido mucho tiempo sin ella, siempre es un detalle poder contar con ella. Sin ir más lejos, prefiero un punto de ruptura y comprobar una respuesta incierta que anotar en el log y tener que hacer varias ejecuciones para obtener el mismo resultado

      Me gusta

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.