2008-09-29 13 views
11

Tengo la configuración de Eclipse con PyDev y me encanta poder depurar mis scripts/aplicaciones. Acabo de empezar a jugar con Pylons y me preguntaba si hay alguna forma de iniciar el servidor de paster a través de Eclipse para poder depurar mi aplicación web.Aplicación Debug Pylons a través de Eclipse

Respuesta

10

Crear una nueva configuración de lanzamiento (Python Ejecutar)

ficha Principal

Uso paster-script.py como módulo principal (que se puede encontrar en las secuencias de comandos subdirectorio del directorio de instalación de Python)

no se olvide de agregar la carpeta raíz de la aplicación en la zona PYTHONPATH

Argumentos Establezca el directorio base en la carpeta raíz también.

como argumentos programa de uso "sirven development.ini" (o lo que sea que se utiliza para depurar su aplicación ")

Ficha Común

Comprobar asignar consola y puesta en marcha en el fondo

2

yanjost tiene es correcto, solo quería agregar que necesita asegurarse de no usar la opción --reload, esto evitará que el depurador se una correctamente y haga que sus puntos de interrupción no funcionen. Solo una pequeña cosa con la que me encontré.

1

En Linux que probablemente será/usr/bin/parche o/usr/local/bin/parche local para la escritura de la pasta, y para los argumentos que tengo: servir a $ {} $ {workspace_loc project_path} /development.ini

2

Pude obtener --cargar el trabajo cambiando el 'Directorio de trabajo' en la pestaña de argumentos para no usar el valor predeterminado (es decir, seleccione 'Otro' -> Sistema de archivos -> 'Aplicación raíz de sus Pilones' donde se almacena desarrollo.ini.

1

También obtuve este funcionamiento (finalmente). Usé buildout en lugar de virtualenv para instalar pilones (instrucciones en: http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout), por lo que las instrucciones anteriores deben cambiarse un poco en cuanto a las rutas.

-para "módulo principal", que utilizo:

${workspace_loc:myeclipseprojectname/bin/paster} 

(--reload adición hecha puntos de interrupción no funciona para mí, y me probó esta un par de veces)

-por "Argumentos de programa ", que utilizo:

serve ${workspace_loc:myeclipseprojectname/mypylonsprojectname/development.ini} 

-para "Directorio de trabajo, Otros:", que utilizo:

${workspace_loc:myeclipseprojectname/mypylonsprojectname} 

-como se mencionó anteriormente, en "Pestaña común", "Comprobar asignar consola y ejecutar en segundo plano"

-y recuerde establecer un punto de interrupción antes de intentar.

6

Si prefiere no incluir su instalación de Python en el espacio de trabajo de su proyecto para obtener el parche, se puede crear un controlador pura-Python como:

#!/usr/bin/env python 

from paste.script.serve import ServeCommand 

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

... y ejecutar/depuración que en Eclipse.

Nota: esto se ejecuta sin la opción --reload, por lo que no obtendrá implementaciones en caliente (es decir, tendrá que volver a cargar el servidor para ver los cambios). Alternativamente, puede agregar la opción --reload para obtener implementaciones en caliente, pero luego Pydev no se detendrá en sus puntos de interrupción. No se puede tener su pastel y comérselo también ...

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

Esto también funciona maravillosamente para aplicaciones Pyramid. – Seth

0

Esto en realidad no responder a la pregunta acerca de cómo hacerlo en eclipse. Pero he estado depurando el servidor de paster con winpdb, que es un buen depurador gráfico de python (puede instalarlo con easy_install winpdb).

Simplemente comienza su servidor ej .:

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

y haga clic en el botón de ejecución.

Como dijo wayne, es necesario no uso --opción de actualización. Al menos no pude encontrar la manera de conectarme a la aplicación de Internet real, al seleccionar a qué depurador de proceso bifurcado debería ingresar (ingresar diferentes procesos se puede controlar con los comandos de depuración "fork parent" y "fork child").

+0

También descubrí que en mi caso, permitiendo repoze.profile, causaba recursiones demasiado profundas, cuando se ejecuta paster con winpdb. –

Cuestiones relacionadas