使用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的使用有更深入的了解。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/199099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝的头像小蓝
上一篇 2024-12-04 19:14
下一篇 2024-12-04 19:14

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python编程二级证书考试相关现已可以上网购买

    计算机二级Python考试是一项重要的国家级认证考试,也是Python编程的入门考试。与其他考试一样,Python编程二级证书的考生需要进入正式考试,而为了备考,这篇文章将详细介绍…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论