Depurador (Debugger)#
La depuración en Spyder es compatible a través de la integración con el depurador mejorado de ipdb
en la consola Terminal de IPython. Esto permite que los puntos de interrupción y el flujo de ejecución sean vistos y controlados directamente desde el Spyder GUI, así como con todos los comandos conocidos de la consola IPython.
Depurando con ipdb#
Puedes controlar completamente la ejecución del depurador desde el menú Depurar de la Barra de herramientas de depuración y a través de atajos de teclado configurables, junto con el estándar ipdb
comandos de consola.
Además, el Editor muestra la línea de código en la que el depurador se detiene con una flecha.
El depurador de Spyder ofrece resaltado de sintaxis, terminación de código e historial de comandos, que funcionan exactamente como lo hacen en el intérprete interactivo normal.
Usa las flechas arriba y abajo para recordar comandos anteriores, y pulsa Tab para activar sugerencias de autocompletado.
Además, las funciones mágicas de IPython están disponibles en modo de depuración. Puedes, por ejemplo, ejecutar %ls
para listar los contenidos de tu directorio de trabajo actual o %timeit
para comprobar cuán rápido es un fragmento de código dado.
Por último, puedes introducir y ejecutar sentencias multilíneas en el depurador de Spyder de la misma forma que con la petición IPython habitual, para ejecutar fácilmente código complejo.
Puntos de interrupción#
El depurador de Spyder está integrado con el panel de Breakpoints, el cual muestra el archivo, la línea y la condición (si existe) de cada punto de interrupción definido. Para abrirlo, selecciona , o pulsa Ctrl-Shift-B (Cmd-Shift-B en macOS).
Hay varias maneras diferentes de establecer y limpiar los puntos de interrupción:
Con la opción Añadir o eliminar un punto de interrupción en el menú depuración.
Presionando el atajo de teclado configurable (F12 para normal, o Shift-F12 para puntos de interrupción condicional por defecto).
Al hacer clic a la izquierda del número de línea en un archivo abierto en el Editor (agregando Shift para un punto de interrupción condicional).
Con la función incorporada
breakpoint()
en tu código.Interactivamente, usando el comando
b
en una sesión de depuración.
Puedes acceder y editar variables locales y globales en cada punto de interrupción a través del Explorador de variables.
Funcionalidades avanzadas#
Puedes evitar pasar por otros paquetes de Python mientras depuras activando Ignorar las librerías de Python mientras se depura en las preferencias de Spyder, bajo . Esto omitirá todos los módulos Python integrados y de terceros que haya instalado.
Si tu código tiene variables con los mismos nombres que los comandos Pdb (por ejemplo, b
o step
), todavía puedes referirte a ellos como normales mientras depuras. Para llamar al comando Pdb correspondiente, simplemente agrega un punto de exclamación antes de él (por ejemplo, !b
o !step
).
Puedes hacer que Spyder ejecute automáticamente un fragmento de código personalizado cada vez que el depurador se detiene. Por ejemplo, puedes usar esto para establecer variables específicas, o importar módulos usados comúnmente para que estén siempre disponibles durante la depuración. Para configurar esto, vaya a
, e introduce el código que deseas que se ejecute con cada paso.Soporte Matplotlib#
La generación de figuras de Matplotlib está totalmente soportada mientras el depurador está activo, incluyendo todos los diferentes backends gráficos. Utilice la magia %matplotlib
para cambiar a un backend interactivo (por ejemplo, %matplotlib qt5
) para anclar, acercar y ajustar tus gráficas en una ventana separada, o vuelve al inline
predeterminado (%matplotlib inline
) para verlos mostrados directamente en el panel Gráficos.
Para evitar mostrar gráficos mientras se depura, desactiva la opción Procesar ejecución de eventos al depurar en .