您的位置:

使用debugpy进行Python调试

一、介绍

在编写Python代码时,我们难免会遇到一些bug,这时我们需要调试器来帮助我们找到问题。Python自带了pdb模块,但它的使用并不太方便,而debugpy则是一款轻量级的Python调试器,它具有快速、易用等特点。

在本篇文章中,我们将介绍如何使用debugpy进行Python调试,包括在本地和远程进行调试,以及如何使用VSCode的调试功能。

二、本地调试

1. 安装debugpy

首先,我们需要安装debugpy模块,可以使用pip进行安装。

pip install debugpy

2. 在代码中插入断点

在需要进行调试的代码中插入断点,可以使用debugpy的breakpoint()函数来实现。

import debugpy

debugpy.breakpoint()  # 在此处插入断点

3. 启动debugpy调试器

通过在命令行中运行debugpy调试器来启动调试。

python -m debugpy --listen localhost:5678 your_script.py

其中your_script.py为需要调试的Python文件。该命令会启动debugpy调试器,并等待连接。可以使用--wait-for-client选项来等待调试客户端的连接。

4. 连接调试器

在VSCode中打开一个Python文件,然后打开调试视图,在左侧的调试菜单中选择“添加配置”,选择Python(调试器),然后将配置文件修改为:

{
    "name": "Python: Remote Attach",
    "type": "python",
    "request": "attach",
    "connect": {
        "host": "localhost",
        "port": 5678
    },
    "pathMappings": [
        {
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "."
        }
    ]
}

其中,host和port分别为启动debugpy时指定的地址和端口号。

5. 启动调试器

点击调试界面的启动按钮,即可连接到debugpy调试器并开始调试。

三、远程调试

1. 进入远程环境

在远程环境中需要安装debugpy模块,然后在代码中插入断点。

2. 启动debugpy调试器

在远程环境中启动debugpy调试器,并将--listen选项设置为0.0.0.0:5678,以便外部连接。

python -m debugpy --listen 0.0.0.0:5678 your_script.py

3. 配置SSH

在本地电脑上,我们需要使用SSH连接到远程环境。可以使用OpenSSH或PuTTY。

在OpenSSH中,可以使用以下命令:

ssh -R 5678:localhost:5678 user@remote-host

其中,5678为需要转发的端口号,user为远程环境的用户名,remote-host为远程环境的主机名或IP地址。

4. 连接调试器

在VSCode中打开一个Python文件,然后打开调试视图,在左侧的调试菜单中选择“添加配置”,选择Python(调试器),然后将配置文件修改为:

{
    "name": "Python: Remote Attach",
    "type": "python",
    "request": "attach",
    "port": 5678,
    "host": "localhost",
    "pathMappings": [
        {
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "."
        }
    ]
}

其中,host和port分别为连接到远程环境的SSH地址和端口号。

5. 启动调试器

点击调试界面的启动按钮,即可连接到远程环境的debugpy调试器并开始调试。

四、在VSCode中使用调试功能

在VSCode中,可以使用内置的调试功能调试Python代码,同样可以使用debugpy进行调试。

1. 配置启动项

首先,需要在VSCode的启动项中添加调试配置。点击VSCode的调试视图中的“添加配置”,然后选择Python。

下面是一个使用debugpy的调试配置:

{
    "name": "Python: Debug with Debugpy",
    "type": "python",
    "request": "attach",
    "port": 5678,
    "host": "localhost",
    "pathMappings": [
        {
            "localRoot": "${workspaceFolder}",
            "remoteRoot": "."
        }
    ]
}

2. 插入断点

在Python代码中插入调试断点。

3. 启动调试器

点击调试视图中的启动按钮,即可连接到debugpy调试器并开始调试。

五、总结

debugpy是一款轻量级的Python调试器,支持本地和远程调试,易于使用。我们可以在通过命令行启动debugpy调试器后,在VSCode中连接调试器,进行Python代码的调试。通过这篇文章的介绍,希望大家对debugpy的使用有更深入的了解。