In Desarrollo Última actualización:
Comparte en:
Cloudways ofrece alojamiento en la nube administrado para empresas de cualquier tamaño para alojar un sitio web o aplicaciones web complejas.

¿Quieres ser un verdadero experto en depuración de Python? ¡Depure su código de Python usando estas increíbles herramientas y bibliotecas de depuración de Python que pronto cubriremos!

Python es un lenguaje de programación de propósito general, de alto nivel y orientado a objetos que se utiliza para muchos propósitos de desarrollo. Además, es una herramienta de desarrollo eficaz para diferentes aplicaciones, desde el desarrollo de aplicaciones web hasta web scraping y aplicaciones más complejas como el aprendizaje automático y la ciencia de datos.

During development, errors called bugs in programming are prone to occur. Developers take several steps to detect and eliminate the existing and potential bugs from the code. As a result, you prevent the program code from crushing. We call this process debugging.

Este artículo analizará varios depuradores de Python disponibles que puede usar. También veremos cuán diferentes son estos depuradores son unos de otros y lo que hace que su implementación sea efectiva.

Biblioteca de depuración de cProfiler

perfilador c, es una biblioteca popular y una extensión de C que ejecuta perfiles de código de ejecución prolongada. A la larga, identifica las secciones del código del programa que tardan más en ejecutarse. Aunque identifica el tiempo preciso que se tarda en ejecutar diferentes secciones del código, no identifica ni corrige completamente los errores en el código.

Por lo tanto, surge la necesidad de utilizar otros depuradores.

Afortunadamente, puede usar bibliotecas recomendadas como ipdb, Django-debug-toolbar, pyelftools, viztracer y py-spy como herramientas de depuración para su código de Python.

La herramienta de depuración de ipdb

El depurador de Python habilitado para IPython en su totalidad es un depurador interactivo de terceros que contiene pdbla funcionalidad de. Ipbd también viene con soporte IPython de shell interactivo. Dicho soporte incluye finalización de pestañas, soporte de color y funciones mágicas, entre otras funciones de soporte.

Este depurador permite el acceso al depurador de IPython mediante la exportación de funciones relevantes. También ofrece una interfaz similar para una mejor introspección, al igual que en el módulo pdb.

Depuración con Ipdb

La biblioteca requiere instalación usando el comando pip a continuación.

pip install ipdb

Un ejemplo del uso de ipdb se vería así:

import ipdb
alpha_list = ['a', 'b', 'c']
fruit_list = ['orange', 'mango', 'kiwi']

def nested_loop():
    for fruit_list:
        print (fruit)
        ipdb.set_trace()
    for x in alpha_list:
        print(x)
if __name__ == '__main__':
    nested_loop()

Ejecute el archivo pitón usando el siguiente comando donde test.py es el nombre de mi archivo:

python -m ipdb test.py

La importación de ipdb y la ejecución del ipdb.set_trace() La función permite el comienzo del programa y ejecuta el depurador a través de la ejecución.

El ipdb.pm() función (post-mortem) actúa de manera similar a la %debug función mágica.

argumentos set_trace

Pasar el contexto como argumento a set_trace para mostrar varias líneas de código definidas. Además, cond, cual set_trace también acepta como argumento, acepta valores booleanos e inicia la interfaz ipdb cuando configura cond a true.

Usando el archivo de configuración

Establezca el argumento de contexto con un archivo idpdb o el setup.cfg archivo disponible en la carpeta de inicio y la carpeta del proyecto, respectivamente. Le invitamos a verificar más la funcionalidad de ipdb.

Barra de herramientas de depuración de Django

El Barra de herramientas de depuración de Django es una herramienta de depuración popular en Django: un marco de Python.

Este conjunto configurable de paneles muestra la información de depuración de una solicitud o respuesta actual. Al hacer clic en la barra de herramientas, se muestran más detalles sobre el contenido del panel.

Esta herramienta inspecciona minuciosamente el entorno de desarrollo de Django.

Siga el proceso de instalación y las instrucciones de configuración aquí.

Biblioteca de Pyelftools

El herramientas La biblioteca está construida puramente en Python. Analiza y analiza los archivos ELF y la información de depuración de DWARF y solo requiere Python para ejecutarse.

Usar Pyelftools es fácil ya que no tiene bibliotecas externas. Además, usar pyelftools sin instalación es bastante fácil ya que simplemente requiere ajustar PYTHONPATH en las variables de entorno.  

Lo instalarás usando:

pip install pyelftools 

La implementación de pyelftools simplemente requiere importarlo e invocarlo en su programa.

La herramienta de depuración icecream 🍦

Esta es otra herramienta de depuración eficiente para los desarrolladores de Python.

Usar helado, Por lo tanto ic(), viene con muchos beneficios sobre print(), como se describe a continuación:

  • Escribirlo es relativamente más rápido, literalmente.
  • Imprime estructuras de datos bastante bien.
  • Imprime expresiones o nombres de variables y sus valores con ic().
  • Resalta la sintaxis de la salida.
  • Opcionalmente, incluye el contexto del programa, incluido el nombre del archivo, el número de línea y la función principal.                     

Antes de usar este paquete, instálelo usando el comando pip a continuación:

pip install icecream

Lo bueno es que puedes aprovechar ic() en todos los archivos sin importarlo necesariamente en todos los archivos instalándolo usando install(). Por otra parte, install() añade ic() al módulo incorporado. Todos los archivos que importa el intérprete compartirán ic().

En su primer archivo root python, al que puede llamar x.py, agregue ic() usando install().

from icecream import install
install()
from y import mult
mult()
 

En el archivo y.py, el archivo x.py se está importando, llame a ic()

def mult():
    z=8
    ic(z)

Resultados:

y
ic| z : 8

Lo que hace que ic() sea más eficiente es su capacidad para inspeccionar las variables que se le pasan, incluido él mismo, y luego imprimir sus argumentos y los valores de los argumentos como en el siguiente ejemplo.

from icecream import ic
def mult(x):
    return x * 4
ic(mult(100))

Salida:

ic| mult(100): 400

Además, puede insertar ic() en código preexistente ya que devuelve sus argumentos. El siguiente ejemplo devuelve ic| x: 12, entonces ic| y: 48.

from icecream import ic
x = 12
def mult(x):
    return x*4
    y = mult(ic(x))
    ic(y)

Depuración con la herramienta py-spy            

Puedes usar py-espía para generar perfiles de muestras para programas de Python como una herramienta de depuración. Sin reiniciar el programa ni modificar su código, py-spy visualiza la ejecución del programa Python. Además, debido a que está escrito en Rust, tiene una sobrecarga baja.

Además, vale la pena considerar que usar py-spy contra el código Python de producción es seguro porque ejecuta un proceso diferente del programa Python perfilado.

Como cualquier otra herramienta anterior que hemos visto, puede usar la herramienta py-spy después de instalarla.

pip install py-spy 

A pesar de que su programa de Python atiende el tráfico de producción, aún puede perfilar y depurar este programa usando py-spy, lo que lo convierte en una herramienta crítica de perfilado de Python.

Depurador de Viztracer

Alternativamente, puede usar viztracer, una herramienta de depuración, para rastrear y visualizar la ejecución de su programa Python. También es una herramienta de creación de perfiles con registro de baja sobrecarga.

¿Qué te hace rastreador una herramienta de depuración eficaz?

  • Usarlo es bastante fácil y no depende de paquetes externos para funcionar.
  • Viztracer funciona en todas las plataformas de sistemas operativos: Windows, Linux o macOS.
  • Su potente interfaz de usuario procesa sin problemas el seguimiento a nivel de GB.
  • Utiliza RegEx para registrar funciones arbitrarias e información adicional como variables y atributos, Excepciones planteadas, Operaciones del recolector de basura, etc., sin modificar ninguna sección de código dentro de su código fuente.
  • Lo que hace que viztracer sea una herramienta de depuración de bajo costo es su capacidad para filtrar los datos que no necesita en su programa. Luego conserva la información anterior antes de volcar el registro en formato JSON.
  • Puede usarlo para insertar eventos personalizados como el evento instantáneo, la evento variable, y la Duración del evento mientras se ejecuta el programa. De esta manera, funciona como una depuración de impresión, excepto que viztracer le permite saber cuándo ocurre la impresión a medida que rastrea los datos.

Para Concluir

Perfilado y depuración de Python como creación de perfiles de software es un paso clave en un desarrollo que llama la atención. Este paso ayuda a descartar cualquier sección de código con errores para optimizar el rendimiento general del código.

Las herramientas de depuración que hemos cubierto anteriormente son herramientas eficientes que facilitan bastante el trabajo de un desarrollador de Python.

Al ver que las otras herramientas de depuración funcionan de manera más efectiva que cProfiler, puede, como un verdadero héroe, depurar su código Python y corregir cualquier error potencial using these debuggers to prevent your code from running without crashing.

¡Feliz depuración!

Comparte en:
  • neema muganga
    Autor
    Neema es un autor técnico experimentado y un desarrollador web competente. Le encanta enseñar sobre desarrollo a través de la escritura y el código.

Gracias a nuestros patrocinadores

Más lecturas interesantes sobre el desarrollo

Impulse su negocio

Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • La herramienta de conversión de texto a voz que utiliza IA para generar voces realistas parecidas a las humanas.

    Prueba la IA de Murf
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.

    Prueba Brightdata
  • Monday.com es un sistema operativo de trabajo todo en uno para ayudarlo a administrar proyectos, tareas, trabajo, ventas, CRM, operaciones, workflows, y más.

    Intente Monday
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.

    Intente Intruder