我使用PyDev进行Eclipse设置,并且喜欢能够调试我的脚本/应用程序。我刚刚开始玩Pylons,并想知道是否有办法通过Eclipse启动paster服务器,以便我可以调试我的webapp?

有帮助吗?

解决方案

创建新的启动配置(Python Run)

主要标签

使用paster-script.py作为主模块(您可以在python安装目录的Scripts子目录中找到它)

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

<强>参数 将基目录设置为根文件夹。

由于程序参数使用“serve development.ini” (或用于调试应用程序的任何内容“)

常用标签

检查分配控制台并在后台启动

其他提示

如果您不想在项目工作区中包含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"])

yanjost说得对,只是想补充一点,你需要确保不使用--reload选项,这样可以防止调试器正确连接自身并导致断点不起作用。我跑进来的只是一件小事。

我能够通过更改参数选项卡中的“工作目录”来使用--reload工作,而不使用默认值(即选择'其他' - &gt;文件系统 - &gt;'你的Pylons的根目录'存储.ini。

在Linux上可能是/ usr / bin / paster或者/ usr / local / bin / paster用于粘贴脚本,对于我有的参数:serve $ {workspace_loc} $ {project_path} /development.ini

我也有这个工作(最后)。我使用buildout而不是virtualenv来安装挂架(说明: http: //wiki.pylonshq.com/display/pylonscommunity/Howto+install+Pylons+with+buildout ),因此上述说明需要稍微改变一下路径。

-for“Main Module”,我用:

${workspace_loc:myeclipseprojectname/bin/paster}

(添加--reload使断点对我不起作用,我测试了几次)

-for“Program Arguments”,我用:

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

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

${workspace_loc:myeclipseprojectname/mypylonsprojectname}

- 如上所述,在“Common Tab”中,“Check allocate console and launch in background”

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

这并没有真正回答有关如何在eclipse中执行此操作的问题。但我一直用winpdb调试paster服务器,这是一个非常好的图形python调试器(你可以用easy_install winpdb安装它)。

启动服务器,例如:

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

然后点击“运行”按钮。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top