Depurador (Debugger)#
Debugging in Spyder is supported through integration with the enhanced ipdb debugger in the Terminal de IPython.
This allows breakpoints and the execution flow to be viewed and controlled right from the Spyder GUI, as well as with all the familiar IPython console commands.
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.
Additionally, the Editor shows the line of code the debugger is currently stopped on with an arrow.
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
ben una sesión de depuración.
You can access and edit local and global variables at each breakpoint through the 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#
Generating Matplotlib figures is fully supported while the debugger is active, including all the different graphics backends.
Use the %matplotlib magic to change to an interactive backend (e.g. %matplotlib qt5) to pan, zoom and adjust your plots in a separate window, or switch back to the default inline (%matplotlib inline) to see them displayed right in the Gráficos pane.
Para evitar mostrar gráficos mientras se depura, desactiva la opción Procesar ejecución de eventos al depurar en .