Eclipse/PyDev + Django 调试

发布于 2024-07-21 20:36:33 字数 129 浏览 4 评论 0原文

Eclipse/PyDev、Python 2.6、Django 1.1

全部都在运行模式下工作。 如果我将调试点放在 manage.py 文件中,断点就会起作用。 但是当我将它放入任何操作方法中时,它不会导致任何结果:(

Eclipse/PyDev, Python 2.6, Django 1.1

All is working in run mode. If I put debug point inside manage.py file, breakpoint worked. But when I putted it in any action method, it causes nothing :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

木格 2024-07-28 20:36:33

通常问题是您在 django 中使用自动重新加载运行,在这种情况下,实际上有一个不同的进程正在提供页面,因此,您需要使用不重新加载选项运行它或使用远程调试器。

(要将 PyDev 配置为与 Django 一起使用,请参阅:http://pydev.org/manual_adv_django.html

请注意,如果您想在没有自动重新加载功能的情况下执行(当您创建新的 Django 运行时,PyDev 应该自动执行此操作),您可以直接执行所有操作(即:调试器和启动不需要任何特殊调整)。


注意:情况最近有所改善,因此,尽管上面的答案仍然有效,但对于那些确实想要使用自动重新加载进行开发的人来说,还是有一些改进:


回答使用自动重新加载:

如果您想在开发时启用自动重新加载,请使用以下提示:PyDev 和 Django:如何重新启动开发服务器?(克服主进程被终止时 Django 将使子进程保持活动状态的问题)

并在以下位置查看与远程调试器相关的会话:< a href="http://pydev.org/manual_adv_remote_debugger.html" rel="nofollow noreferrer">http://pydev.org/manual_adv_remote_debugger.html 查看如何在使用时将调试器附加到 PyDev自动重新加载功能(主要是,您需要启动远程调试器,但会定期添加断点,并且 PyDev 将在主会话之前调用 pydevd.patch_django_autoreload() 时停止 - 即: before if __name__ == "__main__":,添加以下内容:import pydevd;pydevd.patch_django_autoreload())。

Usually the problem is that you're running with auto-reload in django, in which case a different process is actually feeding the pages, so, you need to run it with the no reload option or use the remote debugger.

(To configure PyDev to work with Django see: http://pydev.org/manual_adv_django.html)

Note that if you want to execute without the auto-reload feature (which PyDev should do automatically when you create a new Django run), you can do all directly (i.e.: the debugger and launching don't need any special adjustments).


Note: the situation has improved a bit recently, so, although the above answer is still valid, there are improvements for those that do want to develop with auto-reload on:


Answer with auto-reload on:

If you want to have auto-reload on while developing, use the tips at: PyDev and Django: how to restart dev server? (to overcome an issue where Django will leave child processes alive when the main process is killed)

And see the session related to the remote debugger at: http://pydev.org/manual_adv_remote_debugger.html to see how to attach the debugger to PyDev when using the auto-reload feature (mainly, you'll need to start the remote debugger, but will add breakpoints regularly and PyDev will stop on those provided you call pydevd.patch_django_autoreload() before you main session -- i.e.: before if __name__ == "__main__":, add the following: import pydevd;pydevd.patch_django_autoreload()).

往事风中埋 2024-07-28 20:36:33

另外,如果在尝试导入 pydevd eclipse 时找不到 pydevd 依赖项。 确保从您的插件文件夹中添加它:

  • 查找 eclipse/plugins/org.python.pydev_xxx/pysrc,其中 xxx 是您的 eclipse pydev 插件版本。 在 eclipse/plugins 文件夹中,您会发现许多以相似名称开头的文件夹,其中只有一个有 pysrc 子文件夹(正确的版本号)。
  • 将 eclipse/plugins/org.python.pydev_xxx/pysrc 添加到项目的外部库:
    • 右键单击您的项目资源管理器。
    • 转至properties/PyDev - PYTHONPATH/External Libraries/,然后点击添加源文件夹
    • 在提供的浏览器上找到 eclipse/plugins/org.python.pydev_xxx/pysrc 文件夹。

also if while attempting to import pydevd eclipse can't find the pydevd depependency. Make sure to add it from your plugins folder:

  • Look for your eclipse/plugins/org.python.pydev_x.x.x/pysrc where x.x.x is your eclipse pydev plugin version. In the eclipse/plugins folder you will find lot's of folders that start with a similar name only one of them will have a pysrc subfolder(and the right version number).
  • Add eclipse/plugins/org.python.pydev_x.x.x/pysrc to your project's external libraries:
    • Right click on your project explorer.
    • Go to properties/PyDev - PYTHONPATH/External Libraries/ and click on Add Source folder.
    • Find your eclipse/plugins/org.python.pydev_x.x.x/pysrc folder on the provided browser.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文