VSCode不支持全局启动参数注入,参数仅能通过launch.json的args字段用于F5调试(如["--env","prod"]),或tasks.json封装终端命令;右键运行、Code Runner等均无效,且args不支持变量展开或动态读取文件。

VSCode 本身不支持“启动脚本时自动批量写入参数”——它没有全局启动参数注入机制,所有参数都必须绑定到具体调试会话或终端命令中。
launch.json 的 args 字段只对 F5 调试生效
这是唯一稳定、可复用的参数传递路径,但仅限于调试(F5)场景:
-
args必须是 JSON 字符串数组,例如["--env", "prod", "--timeout", "5000"],不能写成"--env prod" - 每个参数单独一项,含空格的值(如路径)直接作为完整字符串:
["--config", "./configs/app dev.json"] - 参数中的双引号需转义:
["--meta", "{\"version\":\"1.2\"}"] - 配置名必须匹配,且左下角调试选择器要手动选中该配置——VSCode 不记住上次选择
- 右键“Run Python File”或 Code Runner 插件完全无视
args,哪怕配置一模一样
非调试场景:只能靠终端手动执行或 tasks.json 封装
想在不进调试器的情况下带参运行,本质就是执行 shell 命令,没有捷径:
- 按
Ctrl+`打开集成终端,cd到脚本目录,再敲完整命令:python main.py --input data.csv -v - 若常用固定参数组合,写进
.vscode/tasks.json:{ "version": "2.0.0", "tasks": [{ "label": "run:prod", "type": "shell", "command": "python main.py", "args": ["--env", "prod", "--log-level", "warn"], "group": "build" }] }然后Ctrl+Shift+P→ “Tasks: Run Task” 选run:prod - PowerShell 用户注意:双引号和反斜杠容易被提前解析,建议用 CMD 或加
cmd /c包裹
别指望“一键全部参数填好”,args 不支持变量展开或外部文件读取
VSCode 的 args 是静态 JSON 数组,不支持 ${fileBasename} 以外的变量,也不支持从 config.json 动态加载参数:
- 不能写
"args": ["--config", "${workspaceFolder}/config.json"]—— 这个变量会被展开,但不会触发文件读取逻辑 - 无法实现“每次 F5 都自动读取当前目录下 args.txt 并注入”——得靠脚本自己去读,不是 VSCode 的事
- 如果参数太多、太动态(比如从 git tag 生成版本号),就别硬塞进
launch.json,改用tasks.json调用 shell 脚本封装
真正麻烦的不是怎么填参数,而是忘记参数只在 F5 里有效,以及没把参数解析逻辑锁在 if __name__ == "__main__": 里——这两点导致最多白忙活。











