在 Visual Studio Code (VSCode) 中进行 Python 代码调试是一个直观且功能强大的过程,借助于内置的调试支持和 Python 扩展(如 Python extension by Microsoft)。以下是如何设置和开始使用 VSCode 进行 Python 调试的步骤:
1 安装 Python 扩展
确保你已经安装了 VSCode 的 Python 扩展。这可以通过以下步骤完成:
- 打开 VSCode。
- 转到扩展视图,可以通过点击左侧工具栏中的方块图标或按下
Ctrl+Shift+X
打开。 - 在搜索栏中输入 “Python” 并找到由 Microsoft 发布的 Python 扩展。
- 点击安装。
2 配置调试环境
一旦安装了 Python 扩展,你需要配置调试环境。VSCode 的 Python 调试配置文件存储在工作区的 .vscode/launch.json
文件中。按照以下步骤来配置:
- 打开你的 Python 项目文件夹。
- 转到“运行和调试”视图,可以通过点击侧边栏的播放按钮图标或按
Ctrl+Shift+D
打开。 - 点击“创建 launch.json 文件”链接(如果你的工作区还没有配置文件的话)。
- 选择 Python 文件的调试环境。这通常是 “Python File” - 这将创建一个基本的调试配置。
3 编辑 launch.json
文件
为了运行 run.py
并传递 --debug
参数,你需要修改 launch.json
文件以包含正确的配置。例如:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Run with Arguments",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/run.py",
"args": ["--debug"],
"console": "integratedTerminal"
}
]
}
示例
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File",
"type": "python",
"request": "launch",
"program": "run.py",
"args": ["configs/api_examples/eval_Nebulacoder.py", "--dump-eval-details", "--debug"],
"console": "integratedTerminal",
"cwd": "/media/vdb/PycharmProjects/pythonProject/jingzhun/AIGC/opencompass",
"justMyCode": true
}
]
}
这里,"program"
指向你的 run.py
文件,"args"
包含了传递给脚本的命令行参数(在这个例子中是 --debug
)。
“console”: "integratedTerminal"这个设置指定了调试输出应当显示在哪里。“integratedTerminal” 是 VSCode 中的一个选项,它表示:集成终端:调试输出将在 VSCode 的集成终端中显示。这包括任何来自程序的打印输出、错误消息以及其他标准输出和错误信息。当你使用 “console”: “integratedTerminal” 时,调试器将会在 VSCode 的底部终端视图中启动和运行你的代码,你可以在这里看到程序的运行输出,也可以直接在终端中输入内容,例如当程序请求输入时。这个设置对于需要与用户交互的程序特别有用,或者当你希望看到程序运行中可能产生的完整终端输出时。
“justMyCode”: true 这个设置是用来控制调试器行为的:仅我的代码 (justMyCode): 当设置为 true,调试器将只关注用户自己的代码,忽略那些执行中涉及到的库代码或者是第三方代码。当启用 (true) 时,这个选项告诉调试器跳过那些认为不是用户自己写的代码的步入(Step Into)。例如,如果你的代码调用了标准库函数或第三方库函数,调试器将不会进入这些函数内部。这对于调试更为干净直观,因为它让开发者能够专注于他们直接写的代码,而不是跳进去看库的内部实现,这通常对解决问题不是很有帮助。使用 justMyCode 可以减少调试会话中的干扰,让开发者更专注于自己的代码逻辑问题,而不是库或框架内部可能的问题。同时,如果你需要调试库代码或确认库代码中的错误,可以将 justMyCode 设置为 false,以允许调试器步入任何执行代码。
4 启动调试
- 确保你已经保存了
launch.json
文件。 - 在“运行和调试”视图中,从下拉菜单中选择你刚才创建的配置(例如 “Python: Run with Arguments”)。
- 点击绿色的开始调试按钮或按 F5 开始调试。
- VSCode 将启动 Python 调试器,并在遇到任何断点时停下来。
5 设置断点
为了在特定的代码行上中断执行:
- 打开你希望停止执行的 Python 文件。
- 点击代码行号左边的空白区域设置断点,你会看到一个红点出现。
- 当调试运行到这一行时,VSCode 会自动停止,允许你检查变量、步进代码和查看调用堆栈。
5 选择一个项目的 Python 解释器
在 Visual Studio Code (VSCode) 中选择一个项目的 Python 解释器是一个重要的步骤,特别是当你在同一台机器上安装了多个 Python 版本或环境时。VSCode 通过 Python 扩展允许你为每个工作区(项目)选择特定的 Python 解释器。以下是如何设置默认的 Python 解释器:
5.1 确保安装了 Python 扩展
首先,确保你已经在 VSCode 中安装了 Microsoft 的 Python 扩展。可以通过 VSCode 的扩展市场搜索并安装。
5.2 打开项目
在 VSCode 中打开你的项目文件夹。你可以通过选择“文件”->“打开文件夹…”来实现。
5.3 选择 Python 解释器
你可以通过以下几种方式选择或更改项目的 Python 解释器:
使用状态栏
- 打开任意一个 Python 文件。
- 查看 VSCode 窗口底部的状态栏,你会看到当前 Python 解释器的版本信息,例如“Python 3.8.10 64-bit”。
- 点击这个状态栏区域,将弹出一个包含所有可用解释器的列表。
- 从列表中选择你想要为当前项目使用的解释器。
使用命令面板
- 打开命令面板,使用快捷键
Ctrl+Shift+P
(Windows/Linux) 或Cmd+Shift+P
(MacOS)。 - 输入“Python: Select Interpreter”并选择它,这会显示一个有所有检测到的 Python 解释器的列表。
- 从列表中选择你的项目所需的解释器。
5.4 工作区设置
选择解释器后,VSCode 会自动为你的工作区创建一个 .vscode
文件夹(如果尚未存在),并在其中的 settings.json
文件中保存这个解释器的设置。这意味着解释器的选择是按工作区保存的,每次打开项目时 VSCode 都会使用这个解释器。
5.5 验证解释器设置
打开终端(视图
-> 终端
),在终端中输入 python --version
或 python3 --version
(取决于你的系统配置),检查显示的版本是否与你选择的解释器匹配。
6 日志被冲掉了怎么办
如果你的终端日志被“冲掉”了,这通常意味着终端的缓冲区设置不足以保存所有输出的日志。当输出的日志超出了设定的缓冲区大小时,旧的日志会被新的日志替代。
6.1 打开设置
有两种方法可以打开 VSCode 的设置:
- 通过快捷键:在 Windows/Linux 上使用
Ctrl + ,
,在 MacOS 上使用Cmd + ,
。 - 通过菜单:点击左上角的 “文件”(或在 MacOS 上的 “Code”),选择 “首选项”,然后选择 “设置”。
6.2 修改终端设置
在设置界面,你可以通过搜索来快速定位到相关设置:
- 在搜索框中输入
terminal.integrated.scrollback
。 - 找到“终端 > 集成 > 滚动回溯量”设置项。这个设置决定了 VSCode 终端可以保留的行数。
6.3 增加滚动回溯量
- 默认的滚动回溯量可能是 1000 行或者更少。你可以将其设置为一个更高的值,如
10000
或50000
行,这取决于你的需求和计算机的内存容量。输入你想要的行数,然后按Enter
。更改将立即生效。
6.4 保存设置并重启终端
虽然大部分设置更改会即时生效,但有时重启 VSCode 或者关闭并重新打开终端会更好地应用这些设置。