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. Dificultades con la depuración paso a paso en Android.
- 3. Paso a paso (depuración) Código PHP en Netbeans
- 4. Paso a paso y código de depuración en Pruebas unitarias
- 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. Paso a paso Google SSO (java)?
- 9. Emacs Lisp macro paso a paso
- 10. matplotlib, paso a la animación paso
- 11. Rhino Mocks Tutoriales paso a paso
- 12. Django - asistente de formulario paso a paso
- 13. Symfony 2.0 tutorial paso a paso requerido
- 14. Salteo automático de funciones de STL durante la depuración paso a paso en MSVC++ 2010
- 15. Emacs en modo Python: Atajos de teclado para la depuración AP paso a paso
- 16. Acceso fuera de línea de Facebook paso a paso
- 17. Creando un contenedor simple de C++. Net. Paso a paso
- 18. C# - paso a paso en su aplicación significativa
- 19. Java Joda Time - descargar e instalar - paso a paso
- 20. Necesita un WCF paso a paso como servicio de Windows
- 21. Beamer: Cómo mostrar imágenes como imágenes paso a paso
- 22. ¿Cómo depurar/ejecutar un programa Ocaml paso a paso?
- 23. Paso a paso Tutoriales de programación de Lotus Notes Domino
- 24. ¿Cómo ejecutar un programa Perl paso a paso?
- 25. Actualización paso a paso de Indy 10 en Delphi 2009
- 26. Paso a paso Creación/despliegue automatizado de ASP.NET
- 27. Windows Server 2008 como máquina de desarrollo - paso a paso
- 28. paso a paso Ejemplo JMS en Spring Framework
- 29. Seleccione qué método "Paso a Paso" en el depurador
- 30. Mathematica 7 que muestra paso a paso la respuesta
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