Django Eclipse调试。不要在断点处停下来

时间:2012-01-23 10:08:42

标签: django eclipse debugging

我正在尝试通过Eclipse调试我的Django项目。当我通过命令提示符启动服务器后将URL输入浏览器时,该应用程序正常工作。现在我想调试它。

我已经完成了以下操作:我已经设置了调试/运行配置:在配置的主选项卡中,它指向项目和views.py。在参数选项卡中,我有程序参数:runserver --noreload。 (我编写调试/运行配置,因为它似乎进入相同的配置,无论我是“调试为”还是“运行为”。)

我在代码中添加了一个断点。

我对是否应该首先通过命令提示符启动服务器感到困惑;因此,我尝试了两种方式。而且我很困惑我是否应该从Eclipse运行“Run as”或“Debug as”。因此我尝试了所有的组合:

组合1: 通过命令提示符运行服务器单击我的项目(或模块 - 尝试两者),然后选择“运行/运行配置”。选择我的新配置并运行。结果:控制台标题栏显示:--noreload。如果我现在在浏览器中键入url,它可以正常工作,而不是在断点处停止。

组合2: 通过命令提示符运行服务器单击我的项目(或模块 - 尝试两者),然后选择“Debug as / Debug Configuration”。选择我的新配置并运行。结果:控制台标题栏显示为:views.py。在控制台中它显示“pydev debugger:starting”如果我现在在浏览器中键入url,它可以正常工作,而不是在断点处停止。

组合3/4: 服务器未从命令提示符运行。与1和2的结果相同,但浏览器无法连接到localhost。

我读了一个教程,说DJANGO_SETTINGS_MODULE设置为值设置,PYTHONPATH设置为值$ PWD。当我这样做时,我收到一个错误,它无法找到我的设置文件。因此我把它们留了下来,也因为我看到了另一个没有设置它们的教程。

2 个答案:

答案 0 :(得分:3)

当你说通过命令提示符运行时,你是什么意思?

如果设置正确(http://pydev.org/manual_adv_django.html),则以下内容应该有效:

右键单击项目>调试为> PyDev:Django(它将使用--no-reload创建一个运行配置并在调试模式下运行它。)

如果您将启动配置为重新启动上次启动(如http://pydev.org/manual_101_run.html中所述),您应该只需按F11再次调试它,按Ctrl + F11即可在没有调试模式的情况下运行它。

注意:在http://pydev.org/manual_adv_remote_debugger.html(在页面末尾)有关于如何调试而无需指定自动重载的说明 - 您可能还需要查看:https://stackoverflow.com/a/7648375/110451一种在自动重载模式下实际杀死生成的Django进程的方法。)

答案 1 :(得分:0)

原来是一个愚蠢的错误:在调试配置中,我让主模块指向views.py而不是manage.py。改变它修复了问题。

相关问题