2010-11-02 22 views
1

J'essaie de déboguer un projet Google AppEngine dans Eclipse/PyDev fonctionnant sous Ubuntu.Console de débogage dans PyDev avec serveur de développement AppEngine

Le débogage fonctionne généralement bien, mais je ne suis pas en mesure d'évaluer les expressions dans la console de débogage. Je crois que la console démarre le serveur AppEngine et met en pause l'attente de la fin du serveur de développement AppEngine. Je ne suis donc pas en mesure d'obtenir l'invite d'évaluation.

C'est la sortie de la console de débogage:

pydev debugger: warning: psyco not available for speedups (the debugger will still work correctly, but a bit slower) 
pydev debugger: starting 
/home/eric/src/google_appengine/google/appengine/tools/appcfg.py:42: DeprecationWarning: the sha module is deprecated; use the hashlib module instead 
    import sha 
/home/eric/src/google_appengine/google/appengine/tools/dev_appserver_login.py:33: DeprecationWarning: the md5 module is deprecated; use hashlib instead 
    import md5 
INFO  2010-11-02 22:00:13,657 appengine_rpc.py:153] Server: appengine.google.com 
INFO  2010-11-02 22:00:13,679 appcfg.py:414] Checking for updates to the SDK. 
INFO  2010-11-02 22:00:14,010 appcfg.py:428] The SDK is up to date. 
WARNING 2010-11-02 22:00:14,011 datastore_file_stub.py:818] Could not read datastore data from /tmp/dev_appserver.datastore 
INFO  2010-11-02 22:00:14,080 dev_appserver_main.py:443] Running application manualent on port 8080: http://localhost:8080 

Notez qu'il imprime jamais une invite à la fin de la console pour entrer dans les expressions à évaluer.

Avez-vous une idée de la façon dont l'invite s'affiche correctement pour que je puisse évaluer les expressions lors du débogage?

Répondre

1

Avez-vous envisagé d'utiliser la console interactive AppEngine qui fait partie de votre application?

http://code.google.com/appengine/docs/python/tools/devserver.html#The_Development_Console

Le serveur utilise actuellement l'interpréteur Python qui explique pourquoi vous ne recevez jamais une invite (car il est juste un seul interprète, et il est déjà utilisé); Si vous voulez exécuter des expressions Python dans le contexte du serveur, la console de développement est ce que vous voulez utiliser.

Il y a aussi une version plus « de la console comme » de la session Python interactive disponible auprès des développeurs tiers: http://con.appspot.com/console/help/about

+0

ne savait pas à ce sujet, merci pour le pointeur –

0

Essayez d'utiliser la capacité de débogage à distance - je lance en question potentiellement similaire sur Apache + mod_wsgi et résolus en définissant stdoutToServer=True et sterrToServer=True à la sortie de route vers le débogueur distant PyDev:

from pydevsrc import pydevd;pydevd.settrace('192.168.2.8', stdoutToServer=True, stderrToServer=True)