Spyder调试Python脚本时出现runfile()意外参数current_namespace报错如何解决
报错产生原因
这个错误的核心是spyder-kernels包版本与Spyder主程序版本不兼容:
你所使用的spyder-kernels版本较低,其提供的debugfile/runfile函数并没有设计current_namespace这个入参,但你当前的Spyder主程序版本更高,启动调试功能时会默认传递current_namespace=True的参数,函数接收了不支持的关键字参数就会抛出该TypeError。
该问题通常出现在Anaconda部分包更新不完整、或者手动安装了不匹配版本的Spyder相关依赖的场景下。
可行解决办法
- 方法1:统一更新Spyder及相关依赖到兼容版本
打开Anaconda Prompt,如果你使用自定义虚拟环境需要先激活对应环境,执行以下命令:conda update spyder spyder-kernels
更新完成后重启Spyder即可正常使用调试功能。 - 方法2:临时修改运行设置,取消当前命名空间参数传递
打开Spyder菜单栏的「工具」→「偏好设置」→「IPython控制台」→「运行」选项卡,取消勾选「在当前会话的命名空间中运行文件」,保存设置后重新启动调试即可。 - 方法3:降级Spyder主程序到匹配内核的版本
如果你因其他依赖限制无法升级spyder-kernels,可以执行命令将Spyder降级到不传递该参数的旧版本:conda install spyder=5.1.5
安装完成后重启Spyder即可。
内容的提问来源于stack exchange,提问作者Wei Shan Lee
相关产品推荐
相关产品推荐

