【问题标题】:django import ipdb; ipdb.set_trace(); still want to run debugger even if commented. WHY?django导入ipdb; ipdb.set_trace();即使有评论,仍然想运行调试器。为什么?
【发布时间】:2014-04-30 11:11:55
【问题描述】:

我的 IPDB 有问题。我在不使用它之后将其注释掉,但是在我在单次刷新后运行网页之后,无论如何都会触发调试器。我必须至少引用两次左右,以迫使 django 不愿意进入调试。

此外,我经常遇到极端情况error: [Errno 32] Broken pipe

(如果重要的话,我会在基于 vagrant 的 vm 中运行它)

【问题讨论】:

  • 我在编辑代码时遇到了类似的问题,但没有正确完成调试(例如,没有发送“c”或“q”命令)。
  • 检查是否有一些你不希望的python进程仍在运行,并检查是否有帮助。
  • 你是如何运行这个的;通过单独的服务器(例如 Apache),或使用内置的开发服务器。如果是前者,您可能还需要重新启动服务器。
  • @Evert 我使用 django 的普通开发服务器运行runserver

标签: python django debugging ipdb


【解决方案1】:

我会确保我已经杀死了 runserver/gunicorn 并干净地重新启动它,以确保没有仍在运行 ipdb 的线程。 (例如,如果你使用 django-devserver,那就是多线程的)

【讨论】:

  • 相当“蛮力”的一种,但可能是最可靠的 ;-)
  • 是的,确实很烦人!
  • 我经常退出 vagrant 并重新加载它。我不知道,这与Mac OS X上的vagrant+vmbox的不稳定性有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
相关资源
最近更新 更多