15
使用IPython进行分步调试
根据我的阅读,有两种方法可以在Python中调试代码: 使用传统的调试器,例如pdb或ipdb。它支持诸如cfor continue,nfor step-over,sfor step-into等命令,但是您没有直接访问IPython shell的权限,这对于对象检查非常有用。 通过将 IPython shell 嵌入代码中来使用 IPython。您可以这样做,然后在您的代码中使用。当您的程序/脚本命中一条语句时,您将进入IPython shell。这允许使用所有IPython好东西对对象进行全面检查并测试Python代码。但是,在使用时,您将无法通过便捷的键盘快捷键逐步完成代码。from ipython import embedembed()embed()embed() 有什么办法可以融合两全其美?即 能够 使用方便的pdb / ipdb键盘快捷键逐步完成代码。 在任何这样的步骤(例如,在给定的语句上),都可以访问成熟的IPython shell。 如在 MATLAB中一样进行 IPython调试: 在MATLAB中可以找到这种“增强调试”类型的示例,在该示例中,用户始终可以完全访问MATLAB引擎/外壳,并且她仍然可以逐步完成代码,定义条件断点等。我已经与其他用户讨论过,这是人们从MATLAB转移到IPython时最想念的调试功能。 在Emacs和其他编辑器中进行IPython调试: 我不想让这个问题过于具体,但是我主要在Emacs中工作,所以我想知道是否有任何方法可以将此功能引入其中。理想情况下,Emacs(或编辑器)将允许程序员在代码上的任意位置设置断点,并与解释器或调试器进行通信,以使其在您选择的位置停止,并在该位置提供完整的IPython解释器。