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

IntelliJ控制台删除列表时出现KeyError,程序运行无异常

问题:删除变量后IntelliJ控制台出现KeyError但程序运行正常

代码示例

with open("albums.txt", "r") as albums:
    mylist = []
    for line in albums:
        # data row should consist of (artist, album, year, song)
        artist_field, album_field, year_field, song_field = tuple(line.strip('\n').split('\t'))
        year_field = int(year_field)
        mylist.append((artist_field, album_field, year_field, song_field))
    song_list = []
    for i in [5, 10, 26, 28, 41]:
        song_list.append(mylist[i])

del mylist 
print(song_list)

问题描述

我尝试删除mylist变量后,发现只有IntelliJ控制台会抛出错误,但程序本身运行完全正常。mylist明明已经被成功删除,程序逻辑也没问题,我搞不懂这个错误的原因。

报错信息

回溯(最近的调用最后):文件
"C:\Users\G\AppData\Roaming\JetBrains\IntelliJIdea2022.2\plugins\python\helpers\pydev_pydevd_bundle\pydevd_thrift.py",
第241行,在frame_vars_to_struct函数中
v = frame_f_locals[k]
KeyError: 'mylist'
意外错误,已安全恢复。

原因与解决方法

这个错误和你的代码逻辑无关,是IntelliJ自带的Python调试插件(PyDev)的内部问题:

  1. 错误根源:PyDev调试器会追踪当前作用域内的变量,用于在控制台或调试面板展示。当你用del mylist删除变量后,调试器内部的变量追踪列表里还保留着mylist的条目,尝试读取这个已被删除的变量时就触发了KeyError。插件已经做了“安全恢复”处理,所以不会影响你的程序运行。

  2. 解决办法:

    • 调试期间尽量避免删除需要被调试器追踪的变量
    • 将IntelliJ的Python插件更新到最新版本,这类小bug通常会在后续版本中修复

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 02:20:36