Depurando código Python con PyScripter

Posted by in Python

Aprovechando el código de ejemplo de la anterior entrada (conexión de MS Access desde Python), qué mejor que enseñar cómo se depura dentro de PyScripter. Cómo podeis observar en la siguiente imagen, existe un icono para iniciar el proceso de depuración, que también puedes iniciar con F7 (y no se puede con F8, que sirve para ir a la siguiente línea).

Depurando en Python

Depurando en Python

Nada más iniciarse en depuración, la línea azul indica por donde va ejecutando. Además, en la zona inferior donde está el intérprete de Python, puedes ver cómo el promtp ha cambiado incluyendo [Dbg], lo que indica que estamos en modo depuración de código.

Depurando en Python

Depurando en Python

Avanzamos a la siguiente línea pulsando F8 (o también F7) y llegamos a la línea 12. Si vamos al intérprete, podemos comprobar el valor de una variable, por ejemplo print sql:

Depurando en Python

Depurando en Python

Incluso podemos modificar el valor desde el intérprete:

Depurando en Python

Depurando en Python

Otra posibilidad es comprobar el valor de las variables colocando el cursor sobre la misma:

Depurando en Python

Depurando en Python

Cómo podeis ver, además del valor, nos da también más información como el tipo de dicha variable, etc, … y efectivamente, comprobamos que se ha cambiado el valor de la variable sql.

Ahora, queremos comprobar el proceso que tiene lugar si llamara a una función. Si pulsamos F8, iremos a la siguiente línea, pero si pulsamos F7 nos adentramos en la función:

Depurando en Python

Depurando en Python

Pulsando F8 vamos recorriendo la función query de la clase MSAccessConnector, y al concluir, vuelve a donde lo dejamos. En el caso de que una función no nos interese recorrerla línea a línea, puedes pulsar F8+Mayuscula para avanzar hasta el final de dicha función.

Depurando en Python

Depurando en Python

Al concluir la ejecución del programa, puedes comprobar cómo se ha ejecutado con la sentencia modificada desde el interprete, en lugar de la escrita en el código.

Algunas cosas que no se pueden hacer al depurar

Con los antecedentes que tengo a nivel de programación, me quedo con la forma que tiene Visual Basic 6 o VBA de depurar, donde puedes arrastrar el punto de ejecución para adelante y para atrás (aquí no está permitido!).

Tampoco puedes modificar código sobre la marcha, otro punto importante de VB6 y VBA tampoco disponible en Python (ni en C#).

Cómo depurar, es muy importante

Depurar es una de las acciones en la fabricación de software que hay (o habría) que darle mucha importancia. Yo, aquí he puesto la forma de depurar usando PyScripter, uno de los IDEs que suelo usar para programar Python, pero es muy similar en otros IDEs.

Espero que os sirva para mejorar vuestro código!

Google+ Comments - Comentarios Google+