vscode通过tasks.json可实现多python脚本的串行或并行执行:串行需用&&或;分隔独立python命令并配置cwd;并行需为各脚本定义独立task后配合终端分屏或code-runner快捷键触发,且必须确保python指向正确解释器路径。

VSCode 本身不提供“一键运行多个 Python 脚本”的原生按钮,但可以通过 tasks.json 精确控制执行顺序、并发性与环境——关键不是堆命令,而是选对触发方式和避免路径/解释器错配。
用 tasks.json 同时运行多个脚本(带顺序控制)
这是最稳定、可复现的批量执行方案,适合 CI 风格的串行任务(如数据清洗 → 模型训练 → 报告生成)。
-
args中不能直接写多个文件名加空格(如["script1.py script2.py"]),Python 会把整个字符串当做一个文件名报FileNotFoundError - 必须用
&&(Shell)或;(Windows Command Prompt)分隔命令,且每个python调用要独立:["python", "script1.py", "&&", "python", "script2.py"] - 若脚本依赖当前工作目录(比如读取
./config.yaml),务必在tasks.json中加"options": {"cwd": "${workspaceFolder}"},否则可能因路径错乱导致FileNotFoundError或ImportError - Windows 用户注意:PowerShell 默认禁用
&&执行链,建议在tasks.json里显式指定"type": "shell"并设"group": "build",再通过Ctrl+Shift+B触发,比右键菜单更可靠
并行运行多个脚本(真正同时启动)
想让 server.py 和 client.py 同时跑起来?tasks.json 本身不支持多任务并行启动,但可以靠终端分屏 + 多任务定义绕过。
- 先在
tasks.json中为每个脚本单独定义一个label(如"run-server"、"run-client"),都设"isBackground": false - 打开 VSCode 终端(
Ctrl+`),用Ctrl+Shift+5分割出两个面板 - 在第一个面板中执行
npm run dev类比操作:手动运行python server.py;第二个面板中运行python client.py - 如果坚持用任务触发,可用
code-runner配合快捷键:Ctrl+Alt+N运行当前文件后,立刻Ctrl+Tab切到另一文件再按一次 —— 它不会阻塞,实际是并发的
Code Runner 批量运行的坑(别信“全选+Run Code”)
Code Runner 的右键菜单 “Run Code” 不支持多文件批量执行,所谓“全选后运行”只是幻觉:它只会运行焦点所在那个文件。
- 如果你在资源管理器里 Ctrl+单击选中 3 个 .py 文件,然后右键 → Run Code,结果只有最后一个被点击的文件执行
- 它的
executorMap是单文件导向的,没有${fileBasenameNoExtension}之外的批量变量(比如没有${selectedFiles}) - 强行改配置想让它循环执行?别试。Code Runner 源码没暴露该能力,硬改
settings.json会触发校验失败或静默忽略 - 替代方案:写个
runner.py,用subprocess.run(["python", "a.py"], capture_output=True)控制每个子进程,再统一收尾 —— 这才是可控的批量
为什么 launch.json 不适合“运行”,只适合“调试”
按 F5 启动多个脚本看似方便,但本质是启动多个调试会话,开销大、易冲突、输出混杂,且无法保证执行完成才继续下一步。
-
launch.json的"request": "launch"强制启用调试器,哪怕你没打任何断点,也会加载ptvsd或debugpy,内存占用翻倍 - 多个调试会话共用一个终端?VSCode 默认会新开标签页,但窗口标题全是 “Python Debug Console”,根本分不清哪个是哪个
- 想等脚本 A 结束再启动 B?
launch.json不支持依赖链,preLaunchTask只能串一个任务,不能嵌套 - 真正需要调试时再用
F5;日常批量执行,请坚定使用tasks.json或终端手动调用
最容易被忽略的一点:所有方案都依赖 python 命令是否指向你预期的解释器。如果用了虚拟环境,tasks.json 里的 "command": "python" 必须换成绝对路径(如 "C:\myproject\venv\Scripts\python.exe"),否则即使 VSCode 界面显示已选中虚拟环境,任务仍会走系统 Python —— 这类问题不会报错,只会默默导入失败。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











