如何使用VSCode调试python代码

在 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 解释器:

使用状态栏
  1. 打开任意一个 Python 文件。
  2. 查看 VSCode 窗口底部的状态栏,你会看到当前 Python 解释器的版本信息,例如“Python 3.8.10 64-bit”。
  3. 点击这个状态栏区域,将弹出一个包含所有可用解释器的列表。
  4. 从列表中选择你想要为当前项目使用的解释器。
使用命令面板
  1. 打开命令面板,使用快捷键 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (MacOS)。
  2. 输入“Python: Select Interpreter”并选择它,这会显示一个有所有检测到的 Python 解释器的列表。
  3. 从列表中选择你的项目所需的解释器。

5.4 工作区设置

选择解释器后,VSCode 会自动为你的工作区创建一个 .vscode 文件夹(如果尚未存在),并在其中的 settings.json 文件中保存这个解释器的设置。这意味着解释器的选择是按工作区保存的,每次打开项目时 VSCode 都会使用这个解释器。

5.5 验证解释器设置

打开终端(视图 -> 终端),在终端中输入 python --versionpython3 --version(取决于你的系统配置),检查显示的版本是否与你选择的解释器匹配。

6 日志被冲掉了怎么办

如果你的终端日志被“冲掉”了,这通常意味着终端的缓冲区设置不足以保存所有输出的日志。当输出的日志超出了设定的缓冲区大小时,旧的日志会被新的日志替代。

6.1 打开设置

有两种方法可以打开 VSCode 的设置:

  • 通过快捷键:在 Windows/Linux 上使用 Ctrl + ,,在 MacOS 上使用 Cmd + ,
  • 通过菜单:点击左上角的 “文件”(或在 MacOS 上的 “Code”),选择 “首选项”,然后选择 “设置”。

6.2 修改终端设置

在设置界面,你可以通过搜索来快速定位到相关设置:

  • 在搜索框中输入 terminal.integrated.scrollback
  • 找到“终端 > 集成 > 滚动回溯量”设置项。这个设置决定了 VSCode 终端可以保留的行数。

6.3 增加滚动回溯量

  • 默认的滚动回溯量可能是 1000 行或者更少。你可以将其设置为一个更高的值,如 1000050000 行,这取决于你的需求和计算机的内存容量。输入你想要的行数,然后按 Enter。更改将立即生效。

6.4 保存设置并重启终端

虽然大部分设置更改会即时生效,但有时重启 VSCode 或者关闭并重新打开终端会更好地应用这些设置。

### 如何配置或解决 VSCodePython 窗口的相关问题 #### 修改 Python 输出编码防止中文乱码 为了确保在使用 `print` 函数输出中文时不出现乱码,可以修改 VSCode 的用户设置来指定 Python 使用 UTF-8 编码。具体操作如下: 通过快捷键组合 `Ctrl+Shift+P` 调出命令面板并输入 `open user settings` 来访问用户的 JSON 设置文件[^2]。 向该文件中的 `"code-runner.executorMap"` 字段添加特定于 Python 的指令以强制其采用 UTF-8 编码处理 I/O 流: ```json "code-runner.executorMap": { "python": "set PYTHONIOENCODING=utf8 && python" } ``` 此更改使得每次运行 Python 代码时都会自动应用正确的字符集编码规则,从而避免了可能出现的乱码现象。 另一种方式是在同样的位置调整 `"terminal.integrated.env.windows"` 或者其他操作系统对应的环境变量部分,加入 `PYTHONIOENCODING=UTF8` 变量定义[^3]: ```json "terminal.integrated.env.windows": { "PYTHONIOENCODING": "UTF8" }, ``` 以上两种方法都可以有效解决终端内显示中文字符的问题;对于希望保持一致性的开发者来说,推荐后者因为它更贴近编辑器本身的配置机制。 #### 增强 Python 开发体验的基础设置 除了上述针对中文输出的具体解决方案外,还可以利用 VSCode 自带的支持 Python 官方扩展增强开发效率和质量。安装完成后能够获得诸如语法高亮、智能感知等功能的帮助[^1]。 启用这些特性通常只需要简单的几步就能完成——即从市场下载对应插件,并按照提示进行必要的初始化工作即可享受全面的语言服务支持。 另外值得注意的一点是,如果项目依赖项较多的话,考虑创建虚拟环境来进行隔离管理也是不错的选择之一。这可以通过内置终端执行相应命令轻松实现,比如基于 venv 模块构建新的独立空间用于存放第三方库副本而不干扰全局安装版本。 ```bash python -m venv myvenv source ./myvenv/bin/activate # Linux/MacOS .\myvenv\Scripts\Activate.ps1 # Windows PowerShell ``` 最后提醒一点,在做任何改动之前最好先备份好当前的工作状态以便出现问题时能迅速恢复原貌。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值