PyCharm:如何在ipython交互式控制台中进行事后调试?

时间:2016-10-21 20:13:15

标签: ipython pycharm pdb

我刚刚开始使用漂亮的PyCharm社区版IDE,并且不能做一些简单的事情,这是我常用的Python工作流程的一部分。

我已经启动了一个ipython控制台,我可以导入我的模块并以交互方式运行命令。在PyCharm中,当我执行一个函数调用时,它就像在一个单独的进程中运行一样执行。即使在执行完成之前,也可以使用控制台提示符。在PyCharm外部的shell中运行ipython,当发生异常时,我可以运行pdb的post-mortem功能并调查问题:

import pdb;pdb.pm()

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

3 个答案:

答案 0 :(得分:1)

鉴于您使用的是PyCharm,为什么不使用内置调试器?关于如何使用它来设置自己的断点,逐步执行堆栈,配置调试器选项等,有足够的documentation

特别针对您的用例,如果您想要中断异常 - 您可以使用Ctrl + Shift + F8打开断点配置屏幕。 Breakpoints 然后,您可以检查 Python异常断点任何异常。这将使您在发生某些事情时访问异常和整个堆栈(在框架部分中),上下文,变量等。

答案 1 :(得分:1)

在IPython中可以使用%pdb magic

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

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

(我在here前找到了这个答案)

答案 2 :(得分:0)

由于缺乏答案,我认为无法做到。如果有人在这里发布答案,我会接受。

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