Python项目Launch Config配置问题及VS Code调试困惑
解决VS Code Python项目调试与配置问题
第一步:激活Python插件
你安装的Python插件未激活是核心问题,先解决这个:
- 点击左侧活动栏的「扩展」图标(方块形状),找到已安装的Microsoft发布的"Python"插件
- 点击插件卡片上的「激活」按钮,显示「已启用」即激活成功
- 重启VS Code确保插件生效
解决unittest调试配置保存问题
插件激活后,即可创建并保存调试配置:
- 点击左侧活动栏的「运行和调试」图标(虫子形状)
- 若未生成
launch.json,面板顶部会显示「创建launch.json文件」选项;若没看到,直接点击面板右上角的齿轮图标进入配置流程 - 在环境选择弹窗中依次选「Python」→「unittest」
- 自动生成的配置可按需修改
args指定测试文件,示例配置如下:
{ "version": "0.2.0", "configurations": [ { "name": "Python: unittest - my_test", "type": "python", "request": "launch", "module": "unittest", "args": [ "test.my_test" ], "console": "integratedTerminal", "justMyCode": true } ] }
配置完成后,点击调试按钮即可直接运行指定测试,无需重复输入命令。
解答核心困惑
1. 调试是否必须依赖Python插件与launch.json?
- 不是必须。纯终端命令调试可不用,但VS Code的可视化调试功能(断点、变量监视、单步执行)必须依赖Python插件;
launch.json是用来保存调试配置的文件,方便重复使用,新手用可视化调试效率更高。
2. launch.json是否仅适用于调试场景?
- 是的。它专门用于配置VS Code的调试会话,包括启动参数、环境变量、调试目标等,仅和调试功能绑定,普通运行配置可使用
tasks.json。
3. 如何配置多个launch.config?
- 在
launch.json的configurations数组中添加新的配置对象即可。比如同时配置调试主程序和测试文件:
{ "version": "0.2.0", "configurations": [ { "name": "Python: unittest - my_test", "type": "python", "request": "launch", "module": "unittest", "args": ["test.my_test"], "console": "integratedTerminal" }, { "name": "Python: Run main.py", "type": "python", "request": "launch", "program": "${workspaceFolder}/main.py", "console": "integratedTerminal" } ] }
配置完成后,调试面板顶部的下拉菜单会显示所有配置选项,选择对应项即可启动不同调试会话。
4. launch.json是项目级还是工作区级配置?
- 属于工作区级配置。
.vscode文件夹放在打开的工作区根目录下,整个工作区的项目可共用该配置;若工作区包含多个子项目,也可针对不同子项目配置不同调试项。
关联config.json文件到项目
有两种常见方式实现:
- 代码直接读取:在
main.py或my_database.py中读取文件内容,示例代码:
import json with open('config.json', 'r') as f: config = json.load(f) # 使用配置内容,如数据库连接信息 db_host = config.get('db_host')
- 通过环境变量传递:在
launch.json的配置中添加env字段,将config.json中的键值对转为环境变量,示例:
{ "name": "Python: Run main.py", "type": "python", "request": "launch", "program": "${workspaceFolder}/main.py", "console": "integratedTerminal", "env": { "DB_HOST": "localhost", "DB_PORT": "3306" // 可将config.json中的配置转为环境变量,代码中用os.getenv读取 } }
新手建议先从代码直接读取的方式入手,更易理解和操作。
内容的提问来源于stack exchange,提问作者Draco
相关产品推荐
相关产品推荐

