Al trabajar con AppEngine localmente (es decir, mediante el uso de dev_appserver.py), ¿hay alguna forma de realizar una depuración paso a paso? Es una forma muy antigua de usar logging.info() o funciones similares para mostrar los valores de todas las variables en el código y decidir dónde está el error.AppEngine: Depuración paso a paso
Respuesta
Eclipse PyDev admite la depuración y AppEngine.
Si el proceso appengine local es un proceso normal de Python tiene un par de opciones:
En su código, el lugar "puntos de ruptura de códigos":
import pdb; pdb.set_trace()
. Ejecutedev_appserver.py
de forma normal, y el depurador de python se interrumpirá cuando llegue a la línea con el código.Ejecute
dev_appserver.py
en pdb. Desde el shell:$ python -m pdb dev_appserver.py
. Para establecer un punto de interrupción, use el comandob filename.py:linenumber
. Luego use el comandoc
para continuar. Ver http://docs.python.org/library/pdb.html#debugger-commands
ver la pdb module documentation.
Para ampliar un poco en la primera sugerencia de la respuesta de codeape: Debido dev_appserver.py mucks unos con stdin, stdout y stderr, se necesita un poco más de trabajo para establecer un "código de punto de interrupción". Esto hace el truco para mí:
import sys
for attr in ('stdin', 'stdout', 'stderr'):
setattr(sys, attr, getattr(sys, '__%s__' % attr))
import pdb
pdb.set_trace()
Vas a tener que correr dev_appserver.py
desde la línea de comandos en lugar de a través de la interfaz gráfica de usuario de App Engine Launcher. Cuando se ejecuta la línea pdb.set_trace()
, se colocará en el depurador pdb
en ese punto.
¿Puedes explicar un poco más tu código? ¿Por qué el setattr es necesario aquí? ¿Qué pasa si no coloco este código? – Rafid
Intenté su solución pero no funcionó para mí. Obtengo un error de "búsqueda ilegal". – Rafid
El bucle for es simplemente un atajo para escribir '' sys.stdin = sys .__ stdin__; sys.stdout = sys .__ stdout__; sys.stderr = sys .__ stderr__'' – codeape
PyCharm Professional Edition permite la eliminación de errores paso a paso.
Si está dispuesto a realizar algunos pasos de configuración, la versión gratuita, PyCharm Community Edition, se puede configurar para que funcione con Google App Engine python también. No obtendrá todas las ventajas de PyCharm Professional Edition, como la implementación, pero podrá realizar la depuración paso a paso y obtener la navegación de código y el trabajo de autocompletado.
Para habilitar la depuración, editar la configuración PyCharm Ejecutar/Depurar estableciendo:
- de guión: dev_appserver.py de App Engine
- parámetros Guión:
--automatic_restart=no --max_module_instances="default:1" .
- Directorio de trabajo: la carpeta del proyecto de base (la uno que contiene el archivo app.yaml)
Para obtener instrucciones más detalladas, explicaciones y cómo obtener la finalización del código trabajando en un PyCharm CE pr objeto, ver http://www.enkisoftware.com/devlogpost-20141231-1-Python_Google_App_Engine_debugging_with_PyCharm_CE.html.
Si está trabajando en Windows y que desea utilizar PyTools (Microsoft Visual Studio Comunidad) al pitón de depuración para GAE, ver http://www.enkisoftware.com/devlogpost-20140814-1-Python_Google_App_Engine_debugging_with_PyTools.html
- 1. Eclipse paso a la depuración
- 2. Paso a paso y código de depuración en Pruebas unitarias
- 3. Paso a paso (depuración) Código PHP en Netbeans
- 4. Dificultades con la depuración paso a paso en Android.
- 5. ¿Cómo paso a través de depuración retorcida?
- 6. Django paso a paso form.save
- 7. Maven + GAE paso a paso
- 8. Symfony 2.0 tutorial paso a paso requerido
- 9. Emacs Lisp macro paso a paso
- 10. Paso a paso Google SSO (java)?
- 11. Rhino Mocks Tutoriales paso a paso
- 12. Django - asistente de formulario paso a paso
- 13. matplotlib, paso a la animación paso
- 14. Emacs en modo Python: Atajos de teclado para la depuración AP paso a paso
- 15. Salteo automático de funciones de STL durante la depuración paso a paso en MSVC++ 2010
- 16. Paso a paso Creación/despliegue automatizado de ASP.NET
- 17. Mathematica 7 que muestra paso a paso la respuesta
- 18. Actualización paso a paso de Indy 10 en Delphi 2009
- 19. paso a paso Ejemplo JMS en Spring Framework
- 20. Seleccione qué método "Paso a Paso" en el depurador
- 21. Creando un contenedor simple de C++. Net. Paso a paso
- 22. Beamer: Cómo mostrar imágenes como imágenes paso a paso
- 23. C# - paso a paso en su aplicación significativa
- 24. Meteor Paso a paso mi primera guía de aplicaciones?
- 25. ¿Cómo ejecutar un programa Perl paso a paso?
- 26. Tutorial paso a paso para imprimir desde iOS?
- 27. Windows Server 2008 como máquina de desarrollo - paso a paso
- 28. Paso a paso Tutoriales de programación de Lotus Notes Domino
- 29. Necesita un WCF paso a paso como servicio de Windows
- 30. ¿Cómo depurar/ejecutar un programa Ocaml paso a paso?
La primera no funcionó para mí. ¡Simplemente no se detiene y parece que tengo el error BdbQuit! – Rafid
El segundo me sirvió, pero no es conveniente.Se rompe desde el principio, mientras que quiero tener un punto de quiebre en un cierto punto de mi código. – Rafid
Para establecer un punto de interrupción, use el comando "b filename.py:linenumber". Luego use el comando "c" para continuar. Consulte http://docs.python.org/library/pdb.html#debugger-commands – codeape