Articles of depuración de

¿Cómo depurar los scripts o servicios de Python que se ejecutan de forma remota?

Más o menos lo que dice el título, me gustaría poder conectarme a un proceso de Python que se ejecute en modo paster o uwsgi y utilizar la funcionalidad pdb.

Python logging y Pydev debugger?

Editar: Usar Liclipse 1.2.1 en lugar de 1.3.0 o 1.4.0 funciona bien. El registro de cambios indica las actualizaciones de Pydev 3.9.1 y Eclipse 4.4.1 para 1.3.0. Parece romper el debug de registro. Usando el depurador de Liclipse y Pydev (y CPython) con el siguiente ejemplo de código, obteniendo ese error: logging.config.dictConfig(config) File “C:\Python27\lib\logging\config.py”, line […]

Compruebe lo que está haciendo un proceso en ejecución: imprima el seguimiento de la stack de un progtwig Python no documentado

¿Hay alguna forma en Linux de verificar qué está haciendo un proceso de demonio de Python en ejecución? Es decir, ¿sin instrumentar el código y sin terminarlo? Preferiblemente me gustaría obtener el nombre del módulo y el número de línea que se está ejecutando actualmente. Las herramientas de depuración convencionales como strace, pstack y gdb […]

¿Puedo desactivar las conversiones implícitas de Python Unicode para encontrar mis errores de cadenas mixtas?

Al perfilar nuestro código me sorprendió encontrar millones de llamadas a C: \ Python26 \ lib \ encodings \ utf_8.py: 15 (decodificar) Comencé a depurar y descubrí que en nuestra base de código hay muchos errores pequeños, que generalmente comparan una cadena con un unicode o que agregan una cadena y un unicode. Python decodifica […]

¿Cómo ve el valor de retorno de una función en el depurador de Python, sin un intermediario?

PDB (y otros depuradores de Python) tienen una forma sencilla de ver el valor de cualquier variable actual, simplemente escribiéndolo. Sin embargo, a veces trabajo con bibliotecas que no almacenan sus valores de retorno en variables intermedias. Aquí hay una función de ejemplo: def do_stuff(*args, **kwds): return f(*args, **kwds) Después de regresar de f, ¿cómo […]

¿Por qué afirmar no se utiliza en gran medida?

Descubrí que la aseveración de Python es una buena manera de detectar situaciones que nunca deberían suceder . Y se puede eliminar mediante la optimización de Python cuando se confía en que el código sea correcto. Parece ser un mecanismo perfecto para ejecutar aplicaciones de Python en modo de depuración. Pero mirando varios proyectos de […]

Genere un error en Python, excluya el último nivel en el seguimiento de la stack

Entonces, estoy desarrollando esta clase que tiene un indexador. Me gustaría lanzar (o “subir”, en la jerga de Python) una excepción IndexError. Bueno, eso es bastante trivial, if errorCondition: raise IndexError(“index out of range”) Sin embargo, cuando este código se ejecuta en la consola y ocurre un error, el seguimiento de la stack también incluye […]

¿Cómo puedo ver los detalles de una excepción en el depurador de Python?

A veces, mientras estoy depurando se levantará una excepción. Por ejemplo, considere este código: def some_function(): # Pretend this function is in a library… # …and deep within the library is an exception: raise Exception(‘An exception message with valuable information.’) import pdb; pdb.set_trace() try: some_function() # Pretend I am debugging from this point using pdb. […]

Saliendo de Python Debugger ipdb

Utilizo ipdb bastante a menudo para saltar a un trozo de código aislado, es decir, es difícil escribir un script real que lo use. En su lugar, escribo un caso de prueba mínimo con burla y salto en él. Ejemplar para el flujo de trabajo: def func(): … import ipdb ipdb.set_trace() … def test_case(): … […]

¿Cómo depuras las plantillas de Mako?

Hasta ahora, me ha resultado imposible producir rastreos utilizables cuando las plantillas de Mako no están codificadas correctamente. ¿Hay alguna forma de depurar plantillas además de iterar para cada línea de código?