2008-09-29 124 views
11

我有PyDev的Eclipse安装程序,并且爱可以调试我的脚本/应用程序。我刚开始玩Pylons,想知道是否有办法通过Eclipse启动贴图服务器,这样我就可以调试我的Web应用程序了?通过Eclipse调试塔应用程序

回答

10

创建一个新的启动配置(Python的运行)

主要选项卡

使用paster-script.py为主要模块(你可以在你的Python安装目录中的脚本子目录中找到它)

不要忘记添加应用程序的根文件夹中的PYTHONPATH区

参数 也将基础目录设置为根文件夹。

由于程序参数使用 “服务development.ini”(或任何你用它来调试应用程序“)

Common选项卡

入住背景分配控制台和发射

2

yanjost有它是正确的,只是想补充一点,你需要确保你没有使用--reload选项,这将阻止调试器正确附加自身并导致你的断点无法工作,只是我碰到的一件小事

1

对于粘贴脚本可能是/ usr/bin/paster或/ usr/local/bin/paster的linux,以及我有的参数:serve $ {workspace_loc} $ {project_path} /development.ini

2

我能够通过更改参数选项卡中的'工作目录'来重新加载 - 不使用默认(即选择'其他' - >文件系统 - >存储development.ini的'你的Pylons的根目录'应用程序。

1

我也得到了这个工作(最后)。我使用buildout而不是virtualenv来安装挂架(说明:http://wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout),所以上面的说明需要稍微改变一点,直到路径走。

- 对于“主模块”,我用:

${workspace_loc:myeclipseprojectname/bin/paster} 

(添加--reload做断点我不行,我测试了这几次)

- 对于“程序参数”我用:

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

- 因为 “工作目录,其他:” 我用:

${workspace_loc:myeclipseprojectname/mypylonsprojectname} 

- 如上所述,在“常用选项卡”,“检查分配控制台并在后台启动”

- 并记得在尝试之前设置断点。

6

如果您不想在您的项目的工作空间Python安装拿到贴纸,您可以创建一个纯Python的驱动程序,如:

#!/usr/bin/env python 

from paste.script.serve import ServeCommand 

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

...和运行/调试,在Eclipse中。

注意:这是在没有--reload选项的情况下运行的,因此您不会进行热部署(即,您需要重新加载服务器以查看更改)。或者,您可以添加--reload选项以获得热部署,但是Pydev不会停在您的断点处。不能有你的蛋糕和它也吃...

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

这也适用于金字塔应用程序。 – Seth 2011-12-22 00:09:49

0

这并不真正回答关于如何在eclipse中做的问题。但我一直在用winpdb调试paster服务器,这是一个很不错的图形化python调试器(你可以用easy_install winpdb来安装它)。

刚开始你的服务器例如: -

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

,然后单击运行按钮。

正如wayne所说,有必要不是使用--reload选项。至少我无法找到如何连接到实际的webapp,当选择分叉进程调试器应该输入(进入不同的进程可以用“fork parent”和“fork child”调试器命令来控制)。

+0

我还发现,在启用repoze.profile的情况下,当使用winpdb运行paster时,确实会造成过深的递归。 – 2011-04-29 09:05:27