我刚刚开始使用漂亮的PyCharm社区版IDE,并且不能做一些简单的事情,这是我常用的Python工作流程的一部分。
我已经启动了一个ipython控制台,我可以导入我的模块并以交互方式运行命令。在PyCharm中,当我执行一个函数调用时,它就像在一个单独的进程中运行一样执行。即使在执行完成之前,也可以使用控制台提示符。在PyCharm外部的shell中运行ipython,当发生异常时,我可以运行pdb的post-mortem功能并调查问题:
import pdb;pdb.pm()
我想在PyCharm中做同样的事情:当我在交互式调查问题时发生异常时,开始事后调试。
答案 0 :(得分:1)
鉴于您使用的是PyCharm,为什么不使用内置调试器?关于如何使用它来设置自己的断点,逐步执行堆栈,配置调试器选项等,有足够的documentation。
特别针对您的用例,如果您想要中断异常 - 您可以使用Ctrl + Shift + F8打开断点配置屏幕。 然后,您可以检查 Python异常断点的任何异常。这将使您在发生某些事情时访问异常和整个堆栈(在框架部分中),上下文,变量等。
答案 1 :(得分:1)
在IPython中可以使用%pdb
magic。
在IPython上只需使用%pdb
,并且每当发生错误时,您都会在错误的Post Mortem的ipdb
会话中被丢弃。
我真的不知道这是否适用于PyCharm。
(我在here前找到了这个答案)
答案 2 :(得分:0)
由于缺乏答案,我认为无法做到。如果有人在这里发布答案,我会接受。
顺便说一句,如果你安装了Jupyter,如果你运行jupyter qtconsole
,它会给你一个了不起的终端。即使在Windows中也能很好地工作。魔术命令%debug
将自动启动调试器。