2013-03-20 14 views
14

Ho appena aggiornato l'SDK App Engine 1.7.6 per la mia app Python e mi sono reso conto che i punti di interruzione non funzionano più con (plug-in Eclipse) quando si utilizza il nuovo dev_appserver.py.PyDev Breakpoints in App Engine 1.7.6 rotto?

Qualcuno sa di un modo per abilitarli di nuovo? Presumo che il nuovo server stia generando un nuovo processo per il server Web e che il debugger non si colleghi a quello. Non sono sicuro di come configurarlo per farlo però.

Nel frattempo sto utilizzando il server old_dev_appserver.py.

+1

Con "non funziona più", voglio dire che i punti di interruzione non vengono attivati ​​nell'IDE di Eclipse. – Dylan

+1

Stavo per fare la stessa domanda – matcheek

+0

Ho inviato un problema sul progetto AppEngine: https://code.google.com/p/googleappengine/issues/detail?id=9012 – matcheek

risposta

8

UPDATE 2012-07-27:

seguito il commento, ho verificato, il problema è stato risolto dopo l'aggiornamento a PyDev. 2.8 e App Engine 1.8.2

OBSOLETO:

ho trovato la seguente analisi del problema a googleappengine issues tracker

Il motivo per cui PPB non funziona è perché dev_appserver sta usando stdin/stdout per la comunicazione di interprocessi. Python ha librerie incorporate per IPC: http://docs.python.org/2/library/ipc.html. dev_appserver dovrebbe usare questi, e quindi stdin/stdout può essere lasciato solo in modo che il PDB funzioni ancora.

così sembra che non v'è alcuna soluzione, piuttosto che ritornando ad utilizzare old_dev_appserver.py

UPDATE 2013/04/23: incapacità di eseguire il debug è fastidioso. Molti sviluppatori lamentano

  1. PyDev Breakpoints in App Engine 1.7.6 broken?
  2. https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/ep5BWYKpQpU
  3. https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/TCQuJpF44cY
  4. https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=28
  5. https://code.google.com/p/googleappengine/issues/detail?id=9012

sto tenendo traccia di sviluppo di questo problema qui: http://goo.gl/XRU01

+1

Solo per notare, PyDev 2.8.0 è ora sostiene i nuovi ganci su Google App Engine, così, il debug dovrebbe funzionare di nuovo. Vedere i dettagli del rilascio su: http://pydev.org/ –

+0

Ho avuto lo stesso problema di Dylan e confermo che è stato risolto con PyDev 2.8. –

+0

Grazie per l'aggiornamento, sembra che abbiamo prove sufficienti per concludere che il problema è ** finalmente ** risolto. Personalmente penso che sia un peccato che ci sia voluto così tanto tempo. –

1

Vuoi dire pdb.set_trace() non funziona?

Cercare la funzione MonkeyPatchPdb() in google/appengine/strumenti/dev_appserver.py

Run che somewehere nel vostro progetto prima di utilizzare PDB e dovrebbe risolvere il problema.

+0

MonkeyPatchPdb non sembra esistere nel nuovo dev_appserver.py. Non sono sicuro che PyDev usi il Pdb, sto solo impostando i breakpoint nell'IDE di Eclipse. Ho provato a utilizzare pdb.set_trace e ha causato la chiusura dello script. – Dylan

+0

È così che dovrebbe funzionare: inserire il codice qui sotto in /main.py? da google.appengine.tools.dev_appserver importazione MonkeyPatchPdb import PDB MonkeyPatchPdb (PPB) –

3

Sì, si è verificato lo stesso problema.

Aprire la configurazione di esecuzione/debug e impostare il modulo principale per:

${GOOGLE_APP_ENGINE}/old_dev_appserver.py