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?

È stato utile?

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").

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top