繁体   English   中英

ipdb set_trace() 在 spyder 中无法正常工作

[英]ipdb set_trace() is not working properly in spyder

我正在使用Spyder

当我写这些行时:

import ipdb;
ipdb.set_trace()

当我按 n 时,程序总是让我返回以下交互式 shell错误

--Return--
None
> <ipython-input-1-606cc96bec96>(7)<module>()
      6 
----> 7 import ipdb; ipdb.set_trace()
      8 


ipdb> n
> /home/***/anaconda3/envs/***/lib/python3.7/site-packages/IPython/core/interactiveshell.py(3329)run_code()
   3328                 # Reset our crash handler in place
-> 3329                 sys.excepthook = old_excepthook
   3330         except SystemExit as e:


ipdb> 

如果我从 Ubuntu 控制台运行相同的脚本,它可以正常工作。

为什么它在我的 Spyder 程序中不起作用?

那不是错误。 您正在调试 IPython 的胆量。

您不是在运行自己的程序,或者至少不是直接运行。 您正在运行 IPython,它本身是用 Python 编写的,并且您将代码作为输入传递给 IPython 以与exec一起运行。 ipdb 没有看到你的代码和 IPython 本身之间的分离; 它将当前的 Python 程序作为一个整体进行调试。

当您直接从 shell 运行您的程序时,您实际上是在运行您的程序,而不是运行 IPython。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM