2008-09-29 14 views
11

Ho installato Eclipse con PyDev e mi piace 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 della mia webapp?Applicazione debug di piloni tramite Eclipse

risposta

10

Creare una nuova configurazione di lancio (Python Run)

scheda Principale

Usa paster-script.py come modulo principale (si può trovare negli script di sotto-directory nella directory di installazione di pitone)

non dimenticate di aggiungere la cartella principale della vostra domanda nella zona PYTHONPATH

Argomenti Imposta anche la directory di base nella cartella principale.

come argomenti programma di uso "servono development.ini" (o qualsiasi altra cosa che si utilizza per eseguire il debug app ")

Tab comune

Controllare allocare console e il lancio in background

2

yanjost ha è giusto, volevo solo aggiungere che è necessario assicurarsi che non si usi l'opzione --reload, questo impedirà al debugger di collegarsi correttamente e di far sì che i punti di interruzione non funzionino, solo una piccola cosa che ho incontrato.

1

su Linux che probabilmente sarà/usr/bin/paster o/usr/local/bin/paster per incollare lo script, e per gli argomenti che ho: servire $ {} workspace_loc $ {} project_path /development.ini

2

Sono stato in grado di ottenere --reload lavorando cambiando la 'Directory di lavoro' nella scheda degli argomenti per non usare il default (es selezionare 'Altro' -> File System -> 'Root of the Pylons' app dove development.ini è memorizzato.

1

Anche questo funziona (finalmente). Ho usato buildout invece di virtualenv per installare i piloni (istruzioni a: http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout), quindi le istruzioni di cui sopra dovevano essere modificate un po 'per quanto riguarda i percorsi.

-per "modulo principale", io uso:

${workspace_loc:myeclipseprojectname/bin/paster} 

(--reload l'aggiunta di fatto punti di interruzione non funziona per me, e ho provato questo 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 di cui sopra, in "Tab Comune", "Controllare allocare console e il lancio in background"

-e ricordarsi di impostare un punto di interruzione prima di provare.

6

Se si preferisce non includere l'installazione di Python in area di lavoro del progetto per ottenere paster, è possibile creare un driver puro-Python come:

#!/usr/bin/env python 

from paste.script.serve import ServeCommand 

ServeCommand("serve").run(["development.ini"]) 

... ed eseguire/debug che in Eclipse.

Nota: questo è in esecuzione senza l'opzione --reload, quindi non si ottiene distribuzioni a caldo (vale a dire, sarà necessario ricaricare il server per vedere le modifiche). In alternativa, è possibile aggiungere l'opzione --reload per ottenere distribuzioni a caldo, ma Pydev non si fermerà ai punti di interruzione. Non può avere la botte piena e la moglie ubriaca ...

ServeCommand("serve").run(["--reload", "development.ini"]) 
+0

Questo funziona egregiamente per le app Pyramid. – Seth

0

Questo in realtà non rispondere alla domanda su come farlo in Eclipse. Ma ho eseguito il debug di server paster con winpdb, che è un bel debugger grafico in python (puoi installarlo con easy_install winpdb).

basta avviare il server ad es .:

winpdb /usr/local/bin/paster serve development.ini 

e fare clic su pulsante di esecuzione.

Come detto, è necessario non utilizzare l'opzione --reload. Almeno non sono stato in grado di trovare il modo di collegarlo alla webapp effettiva, anche quando si seleziona a quale debugger del processo biforcuto deve entrare (l'inserimento di diversi processi può essere controllato con i comandi di debugger "fork parent" e "fork child").

+0

Ho anche scoperto che nel mio caso abilitare repoze.profile, ha causato ricorsioni troppo profonde, quando paster viene eseguito con winpdb. –

Problemi correlati