Press "Enter" to skip to content

在 VSCode 中调试 Python 项目:教程与实践

引言

在 Python 开发过程中,调试是不可或缺的一环。高效的调试工具可以帮助我们迅速定位和解决问题。Visual Studio Code(以下简称 VSCode)作为一款轻量级且功能强大的代码编辑器,提供了丰富的调试功能。本教程将详细介绍如何在 VSCode 中调试 Python 项目,包括如何设置断点、逐步执行代码等。

前置条件

在开始之前,请确保您已经完成以下准备工作:

  1. 安装 VSCode:如果您尚未安装,请前往 VSCode 官方网站下载并安装适合您操作系统的版本。
  2. 安装 Python:前往 Python 官方网站下载并安装最新版本的 Python,确保在安装时勾选“Add Python to PATH”选项。
  3. 安装 Python 扩展:打开 VSCode,点击左侧活动栏中的扩展(Extensions)图标,搜索并安装由 Microsoft 提供的官方 Python 扩展。

一、打开 Python 项目

  1. 打开文件夹:在 VSCode 中,点击菜单栏的“文件”->“打开文件夹”,选择您的 Python 项目所在的文件夹。
  2. 创建 Python 文件:如果您还没有现成的 Python 文件,可以创建一个。例如,创建一个名为 app.py 的文件,输入以下示例代码:
def greet(name):
    message = f"Hello, {name}!"
    print(message)
    return message

if __name__ == "__main__":
    user_name = "World"
    greet(user_name)

二、配置调试环境

  1. 进入调试视图:点击左侧活动栏中的“运行和调试”图标,或者使用快捷键 Ctrl+Shift+D
  2. 创建调试配置:在调试视图中,点击顶部的“创建 launch.json 文件”链接,选择“Python File”。这将生成一个 .vscode/launch.json 文件,其中包含默认的调试配置。
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

三、设置断点

  1. 打开代码文件:确保已打开您要调试的 Python 文件。
  2. 添加断点:在需要检查的代码行,点击行号左侧的灰色区域,添加一个红色的断点圆点。

四、启动调试

  1. 开始调试:在调试视图中,确保已选择正确的调试配置(例如“Python: Current File”),然后点击绿色的“开始调试”按钮,或者按下 F5 键。
  2. 程序暂停:程序将运行并在第一个断点处暂停,您会看到当前执行的行被高亮显示。

五、调试技巧

1. 查看变量

  • 变量面板:在调试视图的左侧,展开“变量”面板,可以查看当前作用域内的所有变量及其值。

2. 逐步执行代码

  • 调试控制台:使用调试工具栏中的按钮:
    • 继续 (F5):继续执行,直到下一个断点或程序结束。
    • 单步跳过 (F10):执行下一行代码,不进入函数内部。
    • 单步调试 (F11):进入函数内部,逐步执行。
    • 单步跳出 (Shift+F11):跳出当前函数,返回上一层。

3. 评估表达式

  • 调试控制台:切换到“调试控制台”选项卡,可以输入任意 Python 表达式,按回车键查看结果。
>>> user_name
'World'
>>> greet("VSCode")
Hello, VSCode!
'Hello, VSCode!'

4. 修改变量值

  • 实时修改:在“变量”面板中,双击变量的值,可以直接修改变量值,然后继续执行程序。

六、条件断点

  • 添加条件:右键点击已设置的断点,选择“编辑断点…”,在弹出的输入框中输入条件表达式,例如 user_name == "Admin"
  • 作用:程序仅在条件为 True 时暂停,方便定位特定情况下的问题。

七、函数断点

  • 添加函数断点:在调试视图的“断点”面板中,点击“添加函数断点”按钮,输入函数名称(例如 greet)。
  • 作用:无论函数在哪里被调用,调试器都会在函数入口处暂停。

八、日志断点

  • 添加日志信息:右键点击断点,选择“编辑断点…”,使用 log 表达式,例如 log: user_name is {user_name}
  • 作用:在不暂停程序的情况下,输出变量的值到调试控制台,便于追踪程序运行状态。

九、多线程和多进程调试

  • 多线程调试:VSCode 支持多线程应用的调试,可以在“调用堆栈”面板中查看和切换线程。
  • 多进程调试:对于多进程的 Python 应用,需要在 launch.json 中设置 "subProcess": true,以便调试子进程。jsonCopy code{ "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "subProcess": true }

十、远程调试

  • 配置远程调试:使用 ptvsd(Python Tools for Visual Studio Debug)库,可以在远程机器上运行 Python 程序,并通过 VSCode 进行调试。
  • 安装 ptvsd
pip install ptvsd
  • 修改代码
import ptvsd
ptvsd.enable_attach(address=('0.0.0.0', 5678), redirect_output=True)
ptvsd.wait_for_attach()
  • 配置 VSCode:在 launch.json 中添加远程调试配置,指定正确的主机和端口。
{
    "name": "Python: Remote Attach",
    "type": "python",
    "request": "attach",
    "host": "remote_host_ip",
    "port": 5678,
    "pathMappings": [
        {
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "/path/to/remote/code"
        }
    ]
}

结论

通过本教程,您已经掌握了在 VSCode 中调试 Python 项目的基本方法,包括设置断点、逐步执行代码、查看和修改变量,以及使用条件断点和日志断点等高级功能。熟练使用这些调试技巧,能够极大地提高您的开发效率和代码质量。

参考资料

希望本教程对您有所帮助,祝您在 Python 开发之路上取得更大的进步!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注