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

Spyder调试器触发RecursionError:非递归代码为何递归超限?

解决Spyder调试器触发的RecursionError问题

根据你描述的情况,这个递归错误完全是Spyder调试组件的版本兼容问题导致的——和你的代码本身无关,哪怕是最简单的脚本也会触发,说明问题出在调试器的初始化逻辑上。

从回溯信息能看到,IPython的调试器在继承标准pdb类时陷入了循环调用,这种情况在Python 3.6环境里比较常见:一方面Python 3.6已经停止维护,后续更新的Spyder、IPython版本对它的支持逐渐弱化;另一方面,你的环境里可能某次自动更新了IPython或Spyder,打破了原本适配的版本平衡,而你同事的Python 3.7环境组件版本匹配度更好,所以没出现这个问题。

下面是几个能解决问题的具体步骤:

  • 回退IPython到兼容版本
    Python 3.6对新版本IPython的支持有限,你可以卸载当前IPython,安装一个经过验证的兼容版本:

    pip uninstall ipython -y
    pip install ipython==7.16.1
    

    这个版本是Python 3.6能稳定支持的较新IPython版本,很多用户反馈它能解决这类调试器递归冲突问题。

  • 重置Spyder调试器配置
    有时候Spyder的本地配置文件损坏也会导致奇怪的调试异常。你可以:

    1. 打开Spyder,点击顶部菜单栏的工具 -> 偏好设置
    2. 切换到Python解释器,确认当前使用的是你那个Python36Main环境
    3. 再切换到调试器选项卡,点击重置为默认设置
    4. 重启Spyder后尝试调试简单脚本
  • 重装适配Python3.6的Spyder版本
    如果上面的方法没用,考虑卸载当前Spyder,安装最后一个官方支持Python3.6的Spyder版本:

    pip uninstall spyder -y
    pip install spyder==4.2.5
    
  • 清理环境冗余依赖
    用pip list命令查看你的Python36Main环境里的包,检查是否存在多个版本的pdb、ipython-core或Spyder相关组件,如果有,卸载掉多余的版本,只保留适配的那一套。

另外,既然你之前能正常使用,大概率是某次包更新触发了这个问题,回退到适配的版本是最直接的解决方案。如果条件允许,建议你升级Python版本到3.7及以上,这样后续工具的兼容性会好很多,也能避免类似的旧版本适配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:46:42