vscode运行python慢的根源在于code-runner默认命令低效、未启用终端模式及文件监视失控;优化三处配置——executormap设为"python -u -c \"import sys; exec(open(sys.argv[1]).read())\" --"、开启code-runner.runinterminal、精准配置files.watcherexclude,可提速15%–25%。

VSCode 里跑 Python 脚本慢,90% 不是 Python 本身慢,而是 code-runner 默认命令低效、终端没开、路径解析卡住,或者 linting 在后台疯狂扫描。改三处配置,实测启动+执行快 15%–25%,终端响应无卡顿。
code-runner.executorMap 配什么命令最快
默认的 "python": "python" 每次都要走 shell 查找路径、加载缓存、初始化模块,在 Windows 上多耗 300–500ms。真正快的写法要绕过 shell、禁用缓冲、直读文件执行:
-
python -u是必须加的:强制 stdout/stderr 不缓冲,避免print()延迟输出 - 别用
$pythonPath或cd $dir && python:前者触发额外 shell 查找,后者引入进程 fork 和目录切换开销 - 推荐命令:
python -u -c "import sys; exec(open(sys.argv[1]).read())" --,它跳过__main__.py导入流程,直接执行源码,兼容 Python 3.7+ - 配置位置:用户或工作区
settings.json中修改code-runner.executorMap,覆盖整个键值对
runInTerminal 必须开启,否则路径含空格就崩
如果脚本路径含中文或空格(比如 C:\Users\张三\project\main.py),且 code-runner.runInTerminal 关闭,就会报 Command failed with exit code 9009 —— 这不是找不到 Python,是 Windows 命令行根本没法解析带空格的路径。
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
- 必须勾选
code-runner.runInTerminal(设置里搜这个关键词) - 同时禁用
code-runner.preserveFocus,否则焦点留在编辑器,看不到终端输出 - 若仍出错,检查右下角语言模式是否为
Python(按Ctrl+Shift+P→ 输入Change Language Mode确认)
files.watcherExclude 配不全,CPU 就一直飙高
VSCode 默认监视整个工作区,一旦打开含 node_modules、venv 或 __pycache__ 的项目,Code Helper (Renderer) CPU 就容易 >70%,表现为打字卡、保存延迟、Git 状态刷新慢。
- 必须在工作区根目录的
.vscode/settings.json中配(用户级设置无效) - 最低要求:
"**/node_modules/**": true、"**/venv/**": true、"**/__pycache__/**": true、"**/.git/**": true - Python 项目建议追加:
"**/.mypy_cache/**": true;前端项目加:"**/dist/**": true、"**/build/**": true - 改完后务必关闭并重新打开该工作区——缓存不刷新,配置不生效
linting 多开 + 保存即扫,等于给 CPU 加负重
每次保存都同时跑 pylint 和 flake8,会显著拖慢响应。这不是功能问题,是配置叠加导致的资源争抢。
- 只启用一个 linter:比如
"python.linting.pylintEnabled": true,关掉flake8Enabled等其他项 - 禁用
python.linting.lintOnSave,改用python.linting.lintOnType(边写边检,更轻量) - 设置
"python.linting.ignorePatterns": ["**/venv/**", "**/node_modules/**"],避免扫描无关目录 - 如果用了
autopep8或black格式化,别让它们和 linting 同时在保存时触发,否则并发执行会卡死
最常被忽略的是:code-runner 的优化只对「运行」有效,调试(F5)走的是另一套逻辑,用的是 launch.json 和 debugpy。如果你主要靠调试开发,那得另配 console: "integratedTerminal" 和 env.PYTHONPATH,而不是只改 executorMap。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










