首页 > 编程语言 >VScode python 调试深度学习项目 debugpy 库

VScode python 调试深度学习项目 debugpy 库

时间:2024-09-11 10:46:46浏览次数:7  
标签:debugpy attach VScode 9501 python 调试

以前打 OI,限于辣鸡 NOI Linux 没有靠谱的 IDE。只能用终端 gdb 来调试 C++。
gdb 基本功能还是有的,但是每次启动,之前的东西(断点,监控变量)都会消失,需要重新输一遍。
所以当时发现还是输出调试好,当然前置条件是写的两百行左右的程序编译时间短(1s 左右),从头运行一遍也快(一个题规定的运行时间也是 1s 左右)

对于大点的项目,主要是编译和预运行(现在手里的深度学习项目加载个数据和模型得一分钟)的时间太长,输出调试十分不便,还是需要一个动态的调试手段。

上网学了下 python 项目的调试方法,发现一个非常适用于深度学习方法:

https://www.yuque.com/nulinulizainuli-rhgcd/gt6csv/reg1f9q1y69sppwu?singleDoc#

首先安装 debugpy 库

pip install debugpy -U

需要注意版本号,目前最新的是 1.8.5,但我发现它和我现在一个环境中的 typing 库不兼容,所以把 debugpy 降级到了 1.5.1:

pip install debugpy==1.5.1

然后在 VScode 左侧边栏点击运行和调试,创建一个 launch.json,configurations 中添加

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "sh_file_debug",
            "type": "debugpy",
            "request": "attach",
            "connect": {
                "host": "localhost",
                "port": 9501
            }
        },
    ]
}

python 代码前加入:

import debugpy
try:
    # 5678 is the default attach port in the VS Code debug configurations. Unless a host and port are specified, host defaults to 127.0.0.1
    debugpy.listen(("localhost", 9501))
    print("Waiting for debugger attach")
    debugpy.wait_for_client()
except Exception as e:
    pass

然后设置断点,运行 python 程序,会显示在 Waiting for debugger attach
此时 VScode 中开始调试即可。

一些常见操作:

  1. 由于 python 优秀的解释性语言特性,在调试控制台我们可以输入任意 python 语句,来临时更改一些变量或者查看值。

  2. 如果程序需要运行在另一需要通过 SSH 连接的主机上,考虑用后向代理,将另一主机的 9501 端口转发到 VScode 这边的 9501 端口上,如:
    先 SSH 连接另一主机

ssh -L 9501:localhost:9501 paraai-n32-h-01-agent-137

再在该主机上运行程序。

标签:debugpy,attach,VScode,9501,python,调试
From: https://www.cnblogs.com/coldchair/p/18407848

相关文章

  • python中Tkinter常用控件含义
    #python中Tkinter常用控件Button'按钮控件;在程序中显示按钮。'Canvas'画布控件;显示图形元素如线条或文本'Checkbutton'多选框控件;用于在程序中提供多项选择框'Entry'输入控件;用于显示简单的文本内容'Frame......
  • 计算机毕业设计选题推荐-作品分享交流平台(摄影、绘画、书法)-Java/Python项目实战(亮点:
    ✨作者主页:IT毕设梦工厂✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 计算机毕业设计选题推荐-企业人事管理系统-Java/Python项目实战
    ✨作者主页:IT毕设梦工厂✨个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。☑文末获取源码☑精彩专栏推荐⬇⬇⬇Java项目Python项目安卓项目微信小程序项目......
  • 【python脚本】批量获取攻防资产访问截图
    项目地址https://github.com/TFour123/screen_get1.安装依赖pipinstallseleniumwebdriver-managertqdm2.在py脚本所在文件夹下,创建targets.txt文件,运行脚本即可。说明:(1)该脚本旨在攻防中,批量的请求url,获取页面截图,以便初步判断脆弱资产。(2)脚本运行后,会在py文件所在......
  • Python中的class和__init__方法
    在Python编程中,class是一种面向对象编程的基本构建块,用于创建和管理具有特定属性和行为的实例。在Python中,我们通常是通过class关键字来定义一个类,并在其中定义类的属性和方法。然而,在一些特殊情况下,我们可能需要用到一种特殊的class,即不需要__init__方法的class。那么,什么是指定......
  • 如何用图表控件LightningChart Python实现检测应用?
    LightningChartPython是知名图表控件公司LightningChartLtd正在研发的Python图表,目前还未正式推出,感兴趣的朋友可以戳下方链接申请试用!立即申请LightningChartPython试用什么是结构健康监测(SHM)?结构健康监测(SHM)是指实施结构损伤检测策略的过程,SHM涉及使用传感器和......
  • Python之异常处理与程序调试(Exception Handling and Program Debugging in Python)
    ......
  • Python 之正则表达式(Regular Expressions in Python)
    ......
  • VSCode 常用快捷键总结:涵盖编辑器操作、文件管理、查找替换、代码格式化、调试、视图
    编辑器操作光标与选择Ctrl+D:匹配当前选中的词汇或行,再次选中可操作。Alt+Click:在多个位置插入光标。Ctrl+Alt+↑/↓:在上下行插入光标。Shift+Alt+I:在选中范围内所有行结束符插入光标。Shift+Alt+(dragmouse):鼠标拖动区域,同时在多个行结束符插入光标。Ct......
  • 帮助你高效编写 Python代码的策略和步骤
    程序员每天飞快的编写大量的Python代码是一个极具挑战性的目标,通常不推荐这样做,因为代码的质量、可维护性和可读性远比数量更为重要。然而,在某些特定情境下,如编程竞赛、快速原型开发等,你可能需要高效地编写大量代码。以下是一系列帮助你高效编码的策略和步骤:前期准备阶段明确......