You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spyder IDE调试未完成输入退出触发BdbQuit报错卡死问题求助

问题复现背景

本次反馈针对Spyder IDE调试过程中退出触发的卡死问题,复现用测试代码如下:

def q(s=""):
    if s==0:
        inp=input("enter something to abrupt")
        if inp!="":
            1/0
    if s==1:
        1/0
while 1:
    q(s=0)
    q(1)#debug pointer was here

复现路径:调试代码时,程序执行到input()环节等待用户输入,此时不输入任何内容直接退出调试,就会触发如下报错:

Program interrupted. (Use 'cont' to resume).
--Return--

!exit

[SpyderKernelApp] WARNING | Invalid Message:
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\ipykernel\kernelbase.py", line 896, in _input_request
    [self.stdin_socket], [], [self.stdin_socket], 0.01
  File "C:\ProgramData\Anaconda3\lib\site-packages\zmq\sugar\poll.py", line 147, in select
    return_sockets = zmq_poll(sockets, timeout)
  File "zmq/backend/cython/_poll.pyx", line 143, in zmq.backend.cython._poll.zmq_poll
  File "zmq/backend/cython/_poll.pyx", line 123, in zmq.backend.cython._poll.zmq_poll
  File "zmq/backend/cython/checkrc.pxd", line 13, in zmq.backend.cython.checkrc._check_rc
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder_kernels\customize\spyderpdb.py", line 216, in sigint_handler
    self.set_trace(sys._getframe())
  File "C:\ProgramData\Anaconda3\lib\bdb.py", line 92, in trace_dispatch
    return self.dispatch_return(frame, arg)
  File "C:\ProgramData\Anaconda3\lib\bdb.py", line 154, in dispatch_return
    if self.quitting: raise BdbQuit
bdb.BdbQuit

报错后Spyder会卡在调试模式无法正常操作,只能强制关闭整个程序。

解决方案
  • 临时操作规避:调试过程中如果遇到需要input()输入的断点场景,不要直接终止调试,先在调试控制台输入任意字符后回车,再执行退出调试的操作,就不会触发该异常
  • 卡死后快速恢复:如果已经触发报错卡死,不需要直接关闭整个Spyder程序,点击编辑器顶部菜单栏的「重启内核」选项,等待内核重置完成即可恢复正常操作,当前编辑的所有代码文件内容不会丢失
  • 永久修复:将Spyder版本升级到5.3.3及以上,同步升级spyder-kernels组件到对应版本,该版本官方已经修复了调试状态下中断stdin输入请求的异常捕获逻辑,可彻底解决该问题

内容的提问来源于stack exchange,提问作者Farhang Amaji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 06:12:03