validar tipos sirve sintaxis recent que por para most last invalid imprimir excepciones error ejemplos diferentes python debugging

tipos - ¿Puedes pasar por el código de Python para ayudar a resolver problemas?



traceback(most recent call last) python (9)

Mediante el uso de Python Interactive Debugger ''pdb''

El primer paso es hacer que el intérprete de Python entre en el modo de depuración.

A. Desde la línea de comando

La manera más directa, corriendo desde la línea de comandos, del intérprete de Python

$ python -m pdb scriptName.py > .../pdb_script.py(7)<module>() -> """ (Pdb)

B. Dentro del intérprete

Al desarrollar versiones tempranas de módulos y experimentarlos de forma más iterativa.

$ python Python 2.7 (r27:82508, Jul 3 2010, 21:12:11) [GCC 4.0.1 (Apple Inc. build 5493)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import pdb_script >>> import pdb >>> pdb.run(''pdb_script.MyObj(5).go()'') > <string>(1)<module>() (Pdb)

C. Desde dentro de tu programa

Para un proyecto grande y un módulo de larga ejecución, puede iniciar la depuración desde el programa utilizando import pdb y set_trace () de esta manera:

#!/usr/bin/env python # encoding: utf-8 # import pdb class MyObj(object): count = 5 def __init__(self): self.count= 9 def go(self): for i in range(self.count): pdb.set_trace() print i return if __name__ == ''__main__'': MyObj(5).go()

La depuración paso a paso para entrar en más interno

  1. Ejecuta la siguiente declaración ... con "n" (siguiente)

  2. Repitiendo el último comando de depuración ... con ENTER

  3. Dejarlo todo ... con "q" (dejar de fumar)

  4. Imprimir el valor de las variables ... con "p" (imprimir)

    a) pa

  5. Desactivando el aviso (Pdb) ... con "c" (continuar)

  6. Ver dónde estás ... con "l" (lista)

  7. Entrando en subrutinas ... con "s" (entrar)

  8. Continuando ... pero solo hasta el final de la subrutina actual ... con "r" (retorno)

  9. Asignar un nuevo valor

    a) ! b = "B"

  10. Establecer un punto de interrupción

    a) romper el nido de lino

    b) break nombre de función

    c) romper el nombre del archivo: linenumber

  11. Punto de interrupción temporal

    a) tbreak linenumber

  12. Punto de interrupción condicional

    a) romper el número de ropa, condición

Nota: ** Todos estos comandos se deben ejecutar desde ** pdb

Para un conocimiento profundo, refiérase a:

https://pymotw.com/2/pdb/

https://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/

En java / c # puede pasar fácilmente por el código para rastrear lo que podría estar yendo mal, e IDE hace que este proceso sea muy fácil de usar.

¿Puedes rastrear a través del código de Python de manera similar?


Hay un módulo llamado ''pdb'' en python. En la parte superior de tu secuencia de comandos python lo haces

import pdb pdb.set_trace()

y entrarás en el modo de depuración. Puede usar ''s'' para el paso, ''n'' para seguir la siguiente línea similar a lo que haría con el depurador ''gdb''.


Puede ver el pdb que hace exactamente lo que está buscando, pero no a través de una GUI.


Si desea un IDE con depurador integrado, intente con PyScripter .


Si vienes del fondo Java / C # supongo que tu mejor Pydev sería usar Eclipse con Pydev . Esto le da un IDE completamente funcional con depurador integrado. Lo uso también con django.


También es posible avanzar y rastrear programáticamente a través del código python (¡y es fácil!). Mire la documentación de sys.settrace() para más detalles. También here hay un tutorial para que comiences.



¡Sí! ¡Hay un depurador de Python llamado pdb solo por hacer eso!

Puede iniciar un programa de Python a través de pdb utilizando pdb myscript.py o python -m pdb myscript.py .

Hay algunos comandos que puede emitir, que están documentados en la página pdb .

Algunos útiles para recordar son:

  • b : establecer un punto de interrupción
  • c : continúe depurando hasta llegar a un punto de interrupción
  • s : paso por el código
  • n : para ir a la siguiente línea de código
  • l : enumera el código fuente para el archivo actual (valor predeterminado: 11 líneas, incluida la línea que se está ejecutando)
  • u : navega por un marco de pila
  • d : navegar por un marco de pila
  • p : para imprimir el valor de una expresión en el contexto actual

Si no desea utilizar un depurador de línea de comandos, algunos IDEs como Pydev tienen un depurador GUI.