Debugging de tu código Python con Python debugger

Debugging de tu código Python con Python debugger


Python Debug Debugging

Como hemos visto en artículos anteriores, Python ahora se considera uno de los lenguajes de programación más utilizados en el mundo. Esto es especialmente gracias a su flexibilidad en el desarrollo de software. Ser capaz de programar en Python abre la puerta a muchas oportunidades de trabajo estimulantes y atractivas.

Entonces, ¿para qué sirve Python?

El lenguaje de programación nacido en febrero de 1991 tiene muchos campos de aplicación, como el data science, el machine learning, web development, computer vision, la inteligencia artificial, los fundamentos de la robótica, el análisis y la visualización de datos y más...

Por esta razón, aprender Python podría convertirte en un desarrollador a 360 grados,lanzándote en contextos que actualmente son muy populares en el mundo de la tecnología y del desarrollo de software.

Para programar con Python es importante saber hacer el debugging de nuestro código Python. El debug es la actividad de encontrar y corregir errores en el script (o más simplemente en el programa). A diferencia de la compilación, el debug se realiza exclusivamente para encontrar errores durante la ejecución de un programa, que puede compilarse e interpretarse. Siguiendo el flujo del script en ejecución, en cada línea de código se muestran en tiempo real las operaciones realizadas por las instrucciones registradas en las variables. Para no hacerlo manualmente, se utilizan programas especiales llamados debugger.

Cuando queremos aprender a programar en Python, también tenemos que aprender a hacer el debug. El lenguaje de programación pone a disposición un módulo, llamado Python Debugger.

Para iniciarlo dentro de nuestro código Python solo se necesita ejecutar dos simples comandos:

import pdb

Para importar más tarde nuestra biblioteca:

pdb.set_trace()

Para empezar el debug en la línea de código que me interesa.

¿Cómo funciona el Python Debbuger?

Cuando nuestro intérprete se encuentra con la función set_trace() en el flujo de código, suspende la ejecución y abre la consola para el debugging.

Podremos interactuar con esta console y ejecutar varios comandos para gestionar el debug del script. Para verlos todos solo hay que añadir el comando “help” dentro de la console.

Graphical user interface, text, application

Description automatically generated

Veamos un ejemplo práctico:

import pdb 
for i in range(1, 10): 
    print(i)
    if (i==5): 
        pdb.set_trace() 
print("fine")

El debugger se iniciará en el quinto ciclo (i==5) y, si escribo el comando list en la console del debugger visualizaremos en que punto del programa se encuentra la ejecución

2 -> for i in range(1, 10):

Ahora si queremos conocer el valor de la variable i solo hay que escribirla dentro de la console. Mientras que si por el contrario queremos avanzar en la ejecución, solo necesitamos usar el comando next.

Este es el procedimiento para interactuar con el debugger e identificar anomalías en el propio script en ejecución. Veamos cuáles son los comando más usados por el Python Debugger y para que sirven:

  • Jump: establece la siguiente línea de código para ejecutar.

  • Source: intenta obtener el código fuente del objeto dado y mostrarlo. Útil para interactuar con funciones declaradas en otro lugar.

  • Whatis: imprime el tipo de argumento presente en la línea de ejecución

  • Display: muestra el valor de la expresión, si ha cambiado, cada vez que la ejecución se detiene en el frame actual.

  • Continue: continua la ejecución del programa.

  • Exit: sale del debugger e interrumpe la ejecución.

  • Interact: en nuestra opinión, el comando pdb más útil y poderoso. Inicia un intérprete interactivo cuyo espacio de nombres global contiene todos los nombres que se encuentran en el ámbito actual. 

Estos son algunos de los comandos que ofrece Python Debugger, muy útiles para identificar errores en el código, especialmente si se está trabajando con un proyecto muy grande y, quizás, no escrito por nosotros.

El poder de la programación en Python también radica en estas características. Tener disponible un módulo, que se puede importar con un simple comando, dentro del propio código, sin tener que recurrir a herramientas de depuración externas, es una gran ventaja.

Una opción puede ser recurrir al debug "manual" armándose de paciencia e insertando puntos de interrupción desde cero en los que, al ejecutar el código, podemos ver dónde está presente el fastidioso bug. Pero lleva mucho tiempo.

Aprender Python es también aprender el debug, una técnica útil y extremadamente necesaria si quieres convertirte en desarrollador de software.

Curso de programación Aulab Hackademy

Conviértete en Desarrollador weben 6 meses

Descubre el bootcamp de programación Hackademy

Programa Completo

© 2022 Aulab. Todos los derechos reservados • P.IVA: IT07647440721 • Política de privacidad