Articles of depuración de

Registro de Python: nuevo archivo de registro cada vez que se ejecuta la aplicación

He estado investigando y me cuesta mucho completar lo que espero lograr. Actualmente, esto es lo que tengo (testlog.py) import logging import logging.handlers filename = “example.log” logger = logging.getLogger() logger.setLevel(logging.DEBUG) formatter = logging.Formatter(“%(asctime)s – %(name)s – %(levelname)s – %(message)s”) handler = logging.handlers.RotatingFileHandler(filename, mode = ‘w’, backupCount = 5) handler.setLevel(logging.DEBUG) handler.setFormatter(formatter) logger.addHandler(handler) ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) […]

Python: Cómo detectar el intérprete de depuración

¿Cómo puedo detectar en mi script de python si está siendo ejecutado por el intérprete de depuración (es decir, python_d.exe en lugar de python.exe)? Necesito cambiar las rutas a algunos dlls que paso a una extensión. por ejemplo, me gustaría hacer algo como esto al inicio de mi script en Python: #get paths to graphics […]

Error de rastreo que solo ocurre algunas veces en IC

Tengo un error extraño en el código de Python que solo ocurre a veces en CI. No podemos reproducirlo. ¿Dónde está el código de prueba? response=self.admin_client.post(url, post) self.assertEqual(200, response.status_code, response) A veces obtenemos un 302 que sucede desde que se guarda el formulario. Mi idea de depurar esto: with some_magic_trace.trace() as trace: response=self.admin_client.post(url, post) self.assertEqual(200, […]

¿Cómo ejecutar de forma segura una pieza de código poco fiable?

Supongamos que está trabajando con un código de cuerpo en el que no puede confiar, ¿hay alguna forma de ejecutarlo de forma segura sin perder el control de su script? Un ejemplo podría ser una función que solo funciona parte del tiempo y puede fallar de forma aleatoria / espectacular, ¿cómo podría volver a intentarlo […]

¿Cómo puedo depurar una expresión regular en Python?

¿Hay una manera de depurar una expresión regular en Python? Y no me refiero al proceso de intentarlo e intentarlo hasta que funcionen 🙂 Aquí es cómo se pueden depurar las expresiones regulares en Perl: use re ‘debug’; my $str = “GET http://some-site.com HTTP/1.1”; if($str =~/get\s+(\S+)/i) { print “MATCH:$1\n”; } El código anterior produce el […]

Deshabilitando el assert () de python sin el indicador -0

Estoy ejecutando un script de Python desde un software diferente (proporciona una interfaz de Python para manipular sus estructuras de datos). Estoy optimizando mi código para la velocidad y me gustaría ver qué impacto en el rendimiento tienen mis afirmaciones. No puedo usar python -O . ¿Qué otras opciones tengo, para deshabilitar programáticamente todas las […]

Python: estadísticas de uso de memoria por tipo de objeto (o línea de código fuente)

Estoy haciendo algunos cálculos pesados ​​con Python (usando OpenCV y Numpy) y al final, acabo con un montón de uso de memoria (> 1GB), por lo que todas las referencias deben desaparecer y solo tengo el resultado final (que no debería ser más que unos pocos MB). Para depurar esto, sería bueno si pudiera obtener […]

¿Cómo llamo a la lista de Python mientras depuro?

Tengo el siguiente código de python: values = set([1, 2, 3, 4, 5]) import pdb pdb.set_trace() Ejecuto el script y estoy en el shell de depuración: (pdb) list(values) *** Error in argument: ‘(values)’ (Pdb) ¿Cómo puedo llamar a la list(values) en el depurador sin invocar el propio comando de list del depurador?

¿Cómo configuro sys.excepthook para invocar pdb globalmente en python?

De los documentos de Python: sys.excepthook(type, value, traceback) Esta función imprime un sys.stderr dado y una excepción a sys.stderr . Cuando se produce una excepción y no se captura, el intérprete llama a sys.excepthook con tres argumentos, la clase de excepción, la instancia de excepción y un objeto de rastreo. En una sesión interactiva, esto […]

Codificación / depuración en vivo de Python

¿Hay alguna forma de generar una consola Python interactiva (preferiblemente iPython) durante la ejecución del progtwig sin pausar el progtwig principal y poder verificar y modificar las variables del progtwig? Algo similar a lo que los navegadores ofrecen para JavaScript. Sé de pdb.set_trace() y de IPython.embed() , pero ambos IPython.embed() ejecución del progtwig y requieren […]