Applicazione di debug dei piloni tramite Eclipse
Domanda
Ho installato Eclipse con PyDev e amo poter eseguire il debug dei miei script / app. Ho appena iniziato a giocare con Pylons e mi chiedevo se c'è un modo per avviare il server paster tramite Eclipse in modo da poter eseguire il debug del mio webapp?
Soluzione
Crea una nuova configurazione di avvio (Python Run)
Scheda principale
Usa paster-script.py come modulo principale (puoi trovarlo nella sottodirectory Scripts nella tua directory di installazione di Python)
Non dimenticare di aggiungere la cartella principale dell'applicazione nella zona PYTHONPATH
Argomenti Impostare anche la directory di base sulla cartella principale.
Poiché gli Argomenti del programma utilizzano " serve development.ini " (o qualunque cosa tu usi per eseguire il debug della tua app ")
Scheda comune
Controlla alloca console e avvia in background
Altri suggerimenti
Se preferisci non includere la tua installazione di Python nell'area di lavoro del tuo progetto per diventare più veloce, puoi creare un driver Python puro come:
#!/usr/bin/env python
from paste.script.serve import ServeCommand
ServeCommand("serve").run(["development.ini"])
... ed eseguilo / esegui il debug in Eclipse.
Nota: questo è in esecuzione senza l'opzione --reload
, quindi non si ottengono implementazioni a caldo (ad esempio, è necessario ricaricare il server per vedere le modifiche). In alternativa, puoi aggiungere l'opzione --reload
per ottenere implementazioni a caldo, ma Pydev non si fermerà ai tuoi punti di interruzione. Non puoi avere la tua torta e mangiarla anche tu ...
ServeCommand("serve").run(["--reload", "development.ini"])
yanjost ha ragione, volevo solo aggiungere che devi assicurarti di non usare l'opzione --reload, questo impedirà al debugger di collegarsi correttamente e farà in modo che i tuoi breakpoint non funzionino. Solo una piccola cosa in cui mi sono imbattuto.
Sono stato in grado di far funzionare --reload modificando la 'Directory di lavoro' nella scheda degli argomenti per non usare il default (cioè selezionare 'Altro' - > File System- > 'App root dei tuoi tralicci' dove sviluppo .ini è memorizzato.
Su Linux che probabilmente sarà / usr / bin / paster o / usr / local / bin / paster per lo script incolla, e per argomenti che ho: serve $ {workspace_loc} $ {project_path} /development.ini
Ho anche funzionato (finalmente). Ho usato buildout invece di virtualenv per installare i piloni (istruzioni su: http: //wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout ), quindi le istruzioni sopra devono essere cambiate un po 'per quanto riguarda i percorsi.
-per " Modulo principale " ;, io uso:
${workspace_loc:myeclipseprojectname/bin/paster}
(aggiungendo --reload i breakpoint non funzionano per me, e l'ho provato un paio di volte)
-per " Argomenti del programma " ;, io uso:
serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini}
-per " Directory di lavoro, Altro: " ;, io uso:
${workspace_loc:myeclipseprojectname/mypylonsprojectname}
-come menzionato sopra, in " Common Tab " ;, " Controlla allocazione console e avvio in background "
-e ricorda di impostare un breakpoint prima di provare.
Questo in realtà non risponde alla domanda su come farlo in Eclipse. Ma sto eseguendo il debug del server paster con winpdb, che è un bel debugger python grafico (puoi installarlo con easy_install winpdb).
Basta avviare il server ad es .:
winpdb /usr/local/bin/paster serve development.ini
E fai clic sul pulsante Esegui.
Come detto wayne, è necessario non usare l'opzione --reload. Almeno non sono riuscito a trovare il modo di collegarmi alla webapp effettiva, anche quando si seleziona a quale processo di debugger biforcuto deve entrare (l'inserimento di processi diversi può essere controllato con i comandi di debuger "fork parent" e "fork child").