VSCode 不自动清理 Python 缓存,需手动配置:Code Runner 清终端输出、tasks.json 设 clear:true、find 命令删 .pyc 和 __pycache__、PowerShell/macOS 命令清插件 cache 目录,删后须重启 VSCode。

VSCode 本身不自动清理 Python 缓存,所谓“自动清理”必须靠你主动配置触发点——要么在运行前清终端输出,要么在保存/启动时删 .pyc 文件,或让插件接管语言服务器缓存重建。指望 VSCode 默认行为帮你省空间、防冲突,会一直卡在“改了代码却没生效”的状态。
Code Runner 启用 Clear Previous Output 清终端输出
这不是清 Python 字节码,而是每次按 Ctrl+Alt+N 运行脚本前,把终端里上一轮的输出(含滚动缓冲区)彻底擦掉,避免干扰判断。
- 打开设置:
Ctrl+,→ 搜索Code-runner: Clear Previous Output→ 勾选启用 - 它调用的是 VSCode 原生
Terminal: Clear,不是 shell 的clear命令,历史内容真没了 - 仅对 Code Runner 触发的执行生效;如果你用 Python 扩展的
Run Python File in Terminal,这个设置无效
tasks.json 配置 "clear": true 实现任务级清屏
当你用自定义 tasks.json 跑 Python 脚本、测试或构建流程时,"clear": true 是唯一能保证每次执行前清空终端的可靠方式。
- 必须放在
presentation对象里,且与command同级,不能嵌套进problemMatcher或group - 示例:
{ "label": "run-python", "type": "shell", "command": "python ${file}", "presentation": { "echo": false, "reveal": "always", "clear": true } } - 别写
"command": "clear && python ${file}"—— 这只推高光标,滚动历史还在,调试时容易误读
手动清除 .pyc 和 __pycache__ 不靠 VSCode
VSCode 不管 Python 自己生成的编译缓存,.pyc 文件和 __pycache__ 目录由 Python 解释器控制,得你自己加命令或脚本处理。
仅使用 Python 将 Claw Code 虚拟化框架与 OpenClaw 集成,提供 184 种工具和 200 多条命令,用于安全分析和代码质量...
立即学习“Python免费学习笔记(深入)”;
- 终端里一键清:执行
find . -name "*.pyc" -delete && find . -name "__pycache__" -type d -exec rm -rf {} + - 想保存时自动清?VSCode 没原生支持,但可配
save_hooks插件(如emeraldwalk.RunOnSave),加一条命令:find ${fileDirname} -name "*.pyc" -delete - 注意:清
.pyc不影响ms-python.python插件的语言服务缓存,那部分存在~/.vscode/extensions/ms-python.python-*.cache里,要单独删
Python 插件语言服务器缓存需手动干预
ms-python.python 插件更新中断后,会在 ~/.vscode/extensions/ 下留下带 -cache 后缀的损坏目录(如 ms-python.python-2024.12.0-cache),它比 .pyc 更常导致“跳转失败”“格式化无响应”。
- Windows PowerShell 一行清理:
Get-ChildItem "$env:USERPROFILE\.vscode\extensions" | Where-Object {$_.Name -match '-cache$'} | Remove-Item -Recurse -Force - macOS/Linux:
find ~/.vscode/extensions -name "*-cache" -type d -exec rm -rf {} + - 删完必须重启 VSCode,它才会重新下载并解压最新版插件;只禁用再启用,残留的 cache 还在
- 别删
ms-python.python-2024.12.0这类主目录——那是正常插件本体,删了就真没 Python 支持了
真正卡住 Python 开发体验的,从来不是 .pyc 文件大小,而是插件 cache 目录损坏、workspaceStorage 膨胀、以及终端输出堆叠造成的误判。自动清理只是辅助,关键得知道哪个路径删了有效、哪个删了就废功能。

















