WSL环境下IPython调试器新建变量赋值时意外崩溃怎么解决?
问题原因
该问题属于IPython 7.20~7.31版本的已知适配bug,在WSL环境下的ipdb调试会话中,当尝试向当前调试帧的局部作用域插入未定义的新变量时,会触发作用域校验逻辑的未捕获异常,直接终止调试会话退回终端。你当前使用的7.29.0版本恰好处于受影响的版本区间,因此会出现修改已有变量正常、新建变量直接崩溃的现象。
修复方案
- 升级IPython到8.0及以上版本:该bug在8.0版本已被官方修复,执行命令
pip install --upgrade "ipython>=8.0"即可完成升级,你之前更新未生效大概率是包源默认提供的版本仍处于7.x受影响区间。 - 保留当前版本的临时解决方法:在调试时给新建变量的赋值语句前增加
!前缀,即可绕过有问题的校验逻辑。比如你要新建变量c赋值为1,输入!c = 1即可正常赋值,不会触发崩溃。 - 改用Python自带的标准pdb调试器:启动命令为
python -m pdb [script_name],标准pdb不存在该适配问题,可正常执行新建变量操作。
内容的提问来源于stack exchange,提问作者Anton
相关产品推荐
相关产品推荐

