Visual Studio Code Data Viewer点击数据帧后无法加载问题求助
排查并修复VS Code Python Data Viewer无限加载故障
1. 验证核心扩展版本兼容性
近期多个版本的Jupyter扩展存在大尺寸DataFrame加载的已知bug,你已经做过全量禁用扩展的排查,可以优先排查版本问题:
- 确认
Jupyter、Python、Pylance三个核心扩展均使用正式稳定版,不要安装预览版通道的更新 - 若故障是在升级扩展后出现的,直接回退
Jupyter扩展到v2024.1.0及更早的稳定版本:打开扩展管理页,点击Jupyter扩展右下角的设置图标,选择「安装另一个版本」,选中对应版本安装后重启VS Code即可
2. 修改DataViewer默认配置
大尺寸数据集下默认配置很容易触发加载超时:
- 关闭列类型自动推断:打开VS Code设置,搜索
jupyter.dataViewer.inferColumnTypes,取消勾选该选项。该功能会在加载时全量扫描数据判断列类型,大数据集下极易导致内存占满卡死 - 调整单次加载行数上限:搜索
jupyter.dataViewer.maxRows,默认值为10000,可先调低到5000测试是否能正常加载,确认是行数限制问题后再根据设备内存配置调整到合适值 - 提高输出内存上限:搜索
jupyter.maxOutputSize,默认值为100(单位MB),可调整到500或更高,避免DataFrame序列化后超过输出大小限制被截断
3. 排查pandas与数据格式问题
- 确认使用的
pandas为正式稳定版,版本号不低于1.4.0,低于该版本的pandas与新版Jupyter扩展存在序列化兼容问题,会导致DataFrame无法传递到Data Viewer - 检查DataFrame中是否包含非基础数据类型的列:比如自定义类对象、二进制数据、嵌套列表/字典列,这类数据无法被Data Viewer解析,会直接导致加载卡住。可先执行
df = df.select_dtypes(include=['number', 'string', 'datetime'])保留基础类型列测试加载,排查是否为特殊列导致的问题 - 先手动截断数据测试:运行
df.head(1000)生成小尺寸DataFrame,若小数据可以正常加载、全量数据无法加载,说明是设备内存不足导致的,可优先对数据做截断、降采样后再用Data Viewer查看
4. 清理残留运行缓存
上述操作无效的话清理残留异常缓存:
- 完全关闭VS Code,删除当前工作区目录下的
.vscode文件夹 - 进入用户目录下的
.vscode/extensions文件夹,找到所有ms-toolsai.jupyter-开头的文件夹,删除内部的temp目录下所有临时文件 - 重启VS Code重新加载工作区即可
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

