Eclipse/PyDev、Python 2.6、Django 1.1
一切都在运行模式下工作。如果我将调试点放在 manage.py 文件中,断点就会起作用。但是当我把它放在任何动作方法中时,它什么都不会产生:(
通常问题是您在 django 中使用自动重新加载运行,在这种情况下,实际上是由不同的进程提供页面,因此,您需要使用 no reload 选项运行它或使用远程调试器。
(要配置 PyDev 以使用 Django,请参阅: http: //pydev.org/manual_adv_django.html)
请注意,如果您想在没有自动重新加载功能的情况下执行(当您创建新的 Django 运行时 PyDev 应该自动执行此功能),您可以直接执行所有操作(即:调试器和启动不需要任何特殊调整)。
注意:最近情况有所改善,因此,尽管上述答案仍然有效,但对于那些确实希望通过自动重新加载进行开发的人来说,还是有一些改进:
回答自动重新加载:
如果您想在开发时自动重新加载,请使用以下提示:PyDev 和 Django:如何重新启动开发服务器?(以克服当主进程被杀死时 Django 将使子进程保持活动状态的问题)
并查看与远程调试器相关的会话:http: //pydev.org/manual_adv_remote_debugger.html以了解如何在使用自动重新加载功能时将调试器附加到 PyDev(主要是,您需要启动远程调试器,但会定期添加断点,如果您在主会话之前调用 pydevd.patch_django_autoreload(),PyDev 将停止这些断点 - 即:) before if __name__ == "__main__":, add the following: import pydevd;pydevd.patch_django_autoreload()
。
如果在尝试导入 pydevd 时,eclipse 找不到 pydevd 依赖关系。确保从您的插件文件夹中添加它: