PyCharm: 如何在ipython交互式控制台中进行post实时调试?

PyCharm: how to do post mortem debugging in the ipython interactive console?

我刚刚开始使用不错的 PyCharm 社区版 IDE,但无法完成我通常 Python 工作流程中的一件简单事情。

我已经启动了一个 ipython 控制台,我可以导入我的模块和交互式 运行 命令。在 PyCharm 中,当我执行一个函数调用时,它的执行就像在一个单独的进程中 运行ning 一样。控制台提示甚至可以在执行完成之前使用。这很好,但阻止我进行 post 即时调试。

运行 ipython in a shell outside PyCharm, 当异常发生时,我可以 运行 pdb 的 post mortem 功能和调查问题:

import pdb;pdb.pm()

我想在 PyCharm 中做同样的事情:在我交互式调查问题时发生异常时开始 post 实时调试。

鉴于您正在使用 PyCharm,为什么不使用内置调试器?关于如何使用它来设置自己的断点、单步执行堆栈、配置调试器选项等,有很多 documentation

特别针对您的用例,如果您想中断异常——您可以使用 Ctrl + Shift + F8 打开断点配置屏幕。 然后您可以检查 A​​ny exception for Python Exception Breakpoint。这将使您能够在某些事情确实发生时访问异常和整个堆栈(在 Frames 部分)、上下文、变量等。

由于缺少答案,我认为不可能做到。如果有人在这里发布答案,我会接受。

顺便说一句,如果您安装了 Jupyter,那么如果您 运行 jupyter qtconsole,它会给您一个很棒的终端。即使在 Windows 中也能很好地工作。魔术命令 %debug 将自动启动调试器。

可以在 IPython 中使用 %pdb magic

只需在 IPython 上使用 %pdb,每当发生错误时,您将被丢弃在 ipdb 会话中,错误的 Post 死亡。

我真的不知道这是否适用于 PyCharm。

(我 here 前段时间找到了这个答案)