vscode-python的debug 教学(最全)

vscode中的python-debugger的使用

Visual Studio Code 的主要功能之一是其强大的调试支持。VS Code 的内置调试器有助于加速编辑、编译和调试循环。
在这里插入图片描述

一、 安装python-debugger插件

在插件库内搜索python Debugger,安装插件
在这里插入图片描述

三、 进行debug(不带参数的)

(1)创建debug_learning.py测试文件


def add_fun(a, b):
    a = a * 10
    b = b * 100
    c = a + b
    return c

if __name__ == '__main__':
    a = 10
    b = 78
    c = add_fun(a, b)
    c = c
    print(f"a + b = {c}")

(2)设置断点
在这里插入图片描述
(2)启动debug模式
在这里插入图片描述
(3)debug的各个按钮的介绍
在这里插入图片描述

三、 进行debug(带有参数的)

开始调试

以下文档基于内置的 Node.js 调试器,但大多数概念和功能也适用于其他调试器。

在阅读有关调试的信息之前,首先创建一个示例Node.js应用程序会很有帮助。您可以按照Node.js演练安装Node.js并创建一个简单的“Hello World”JavaScript 应用程序 ()。设置简单的应用程序后,此页面将引导你了解 VS Code 调试功能。app.js
“运行和调试”视图
若要显示“运行和调试”视图,请在 VS Code 一侧的活动栏中选择“运行和调试”图标。您还可以使用键盘快捷键 Ctrl+Shift+D。
在这里插入图片描述

“运行和调试”视图显示与运行和调试相关的所有信息,并具有包含调试命令和配置设置的顶部栏。

如果尚未配置运行和调试(尚未创建),则 VS Code 将显示“运行启动”视图。launch.json
在这里插入图片描述

启动配置

若要在 VS Code 中运行或调试简单应用,请在“调试”开始视图上选择“运行并调试”,或按 F5,VS Code 将尝试运行当前活动文件。
但是,对于大多数调试方案,创建启动配置文件是有益的,因为它允许配置和保存调试设置详细信息。VS Code 将调试配置信息保留在位于工作区(项目根文件夹)或用户设置或工作区设置中的文件夹中的文件中。launch.json.vscode
若要创建文件,请单击“运行开始”视图中的“创建launch.json文件”链接。launch.json
在这里插入图片描述
vscode 将尝试自动检测调试环境,但如果失败,则必须手动选择它:
在这里插入图片描述
下面是为 Node.js 调试生成的启动配置:

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python 调试程序: 包含参数的当前文件",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "args": "${command:pickArgs}"
        }
    ]
}

在深度学习的项目中,想要对train.py进行配置,下面是命令行

python train.py -batch 64 -dataset cifar_fs -gpu 1 -extra_dir your_run -temperature_attn 5.0 -lamb 0.5

按照上面的格式转化为下面文件

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Train with Args",
            "type": "python",
            "request": "launch",
            "program": "/root/autodl-tmp/renet-main/train.py",
            "console": "integratedTerminal",
            "args": [
                "-batch", "64",
                "-dataset", "cifar_fs",
                "-gpu", "1",
                "-extra_dir", "your_run",
                "-temperature_attn", "5.0",
                "-lamb", "0.5"
            ],
            "env": {
                "PYTHONUNBUFFERED": "1"
            }
        }
    ]
}

这里是配置解释:

“name”: “Python: Train with Args”: 这是您的调试配置名称,您可以在调试启动配置下拉菜单中找到它。
“type”: “python”: 指定了使用Python调试器。
“request”: “launch”: 表示启动一个新的调试会话。
“program”: " w o r k s p a c e F o l d e r / t r a i n . p y " : 指定要调试的 P y t h o n 脚本, {workspaceFolder}/train.py": 指定要调试的Python脚本, workspaceFolder/train.py":指定要调试的Python脚本,{workspaceFolder}是当前VS Code工作区目录的占位符,假设train.py位于工作区的根目录下。
“console”: “integratedTerminal”: 调试输出将显示在VS Code的集成终端中。
“args”: 包含您想要传递给train.py脚本的命令行参数列表。
“env”: {“PYTHONUNBUFFERED”: “1”}: 设置环境变量PYTHONUNBUFFERED为1,这样做可以让Python的输出在终端中实时显示,而不是被缓冲。
确保您的train.py和其他相关文件位于VS Code当前的工作区目录中。调整"program"字段的路径,如果您的train.py文件位于不同的位置。此配置允许您通过集成终端直接以指定的参数运行和调试train.py。

如果有多个程序需要调试的话

可以进行如下的设置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "调试1",
            "type": "debugpy",
            "request": "launch",
            "program": "/root/autodl-tmp/renet-main/train.py",
            "console": "integratedTerminal",
            "args": [
                "-batch", "64",
                "-dataset", "cifar_fs",
                "-gpu", "1",
                "-extra_dir", "your_run",
                "-temperature_attn", "5.0",
                "-lamb", "0.5"
            ],
            "env": {
                "PYTHONUNBUFFERED": "1"
            }
        },
        {
            "name": "调试2",
            "type": "debugpy",
            "request": "launch",
            "program": "/root/autodl-tmp/renet-main/train.py",
            "console": "integratedTerminal",
            "args": [
                "-batch", "64",
                "-dataset", "cifar_fs",
                "-gpu", "1",
                "-extra_dir", "your_run",
                "-temperature_attn", "5.0",
                "-lamb", "0.5"
            ],
            "env": {
                "PYTHONUNBUFFERED": "1"
            }
        }
    ]
}

在这里插入图片描述
至此,vscode-python debug 的基础教学到此完毕.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/386972.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux查看日志的几种方法总结

摘要 Linux系统中查看日志的命令确实多种多样,每个命令都有其特定的用途和优势。常用的命令有:tail、cat、tac、head、echo,grep、less、awk、sed。 下面我会详细解释这些命令在查看日志时的用法和特点: tail命令: ta…

ELAdmin 部署

后端部署 按需修改 application-prod.yml 例如验证码方式、登录状态到期时间等等。 修改完成后打好 Jar 包 执行完成后会生成最终可执行的 jar。JPA版本是 2.6,MyBatis 版本是 1.1。 启动命令 nohup java -jar eladmin-system-2.6.jar --spring.profiles.active…

【AI视野·今日CV 计算机视觉论文速览 第292期】Thu, 18 Jan 2024

AI视野今日CS.CV 计算机视觉论文速览 Thu, 18 Jan 2024 Totally 102 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers GARField: Group Anything with Radiance Fields Authors Chung Min Kim, Mingxuan Wu, Justin Kerr, Ken Goldberg, Matt…

CTFshow web(文件上传151-154)

web151 哈,都直接送嘴边了,前端检测领域的问题,那就改前端啊,作者都直接提示了! 第一种方法也是最好用的就是直接把前端内容的png改成php就好 这里教大家一个非常好用的技巧,可以极大节省你的时间&#xf…

C++,stl,函数对象,谓词,内建函数对象

目录 1.函数对象使用 2.谓词 1.一元谓词 2.二元谓词 3.内建函数对象 1.算术仿函数 2.关系仿函数 3.逻辑仿函数 1.函数对象使用 #include<bits/stdc.h> using namespace std;class add { public:int operator()(int v1,int v2){return v1 v2;} };class print { p…

每日五道java面试题之java基础篇(八)

第一题.CopyOnWriteArrayList的底层原理是怎样的 ⾸先CopyOnWriteArrayList内部也是⽤过数组来实现的&#xff0c;在向CopyOnWriteArrayList添加元素时&#xff0c;会复制⼀个新的数组&#xff0c;写操作在新数组上进⾏&#xff0c;读操作在原数组上进⾏并且&#xff0c;写操作…

Java学习第十三节之数组的定义和数组声明创建

数组的定义 数组声明创建 package array;public class ArrayDemo01 {//变量的类型 变量的名字 变量的值//数组类型public static void main(String[] args) {int[] nums;//1.声明一个数组nums new int[10];//2.创建一个数组int[] nums2 new int[10];//声明和创建数组一块…

深度学习从入门到不想放弃-7

上一章的内容 深度学习从入门到不想放弃-6 (qq.com) 今天讲的也算基础(这个系列后来我一寻思,全是基础 ),但是可能要着重说下,今天讲前向计算和反向传播,在哪儿它都永远是核心,不管面对什么模型 前向计算: 有的叫也叫正向传播,正向计算的,有的直接把前向的方法梯度下…

js toFixed函数精度问题

在使用toFixed函数会出现精度缺失问题&#xff0c;如下图 在2.55与1.45保留1位小数时&#xff0c;正常情况下应该为2.6与1.5&#xff0c;而toFixed函数得出的是2.5与1.4。这和计算机中小数存储有关。 小数运算不精确其实与下面三方面有关&#xff1a; 1、存储 2、运算 3、显示…

控制台打印进度条

引言 进度条是用户界面中常见的组件&#xff0c;尤其是在执行长时间操作时。虽然在控制台应用程序中没有图形用户界面那样的视觉组件&#xff0c;但我们可以使用字符来模拟进度条&#xff0c;为用户提供任务执行的视觉反馈。 执行开始… 当前进度: 0% [ ] 当前进度: 1% [ ] 当…

电子元器件基础2---电容

两个相互靠近的导体&#xff0c;中间夹一层不导电的绝缘介质&#xff0c;这就构成了电容器。当电容器的两个极板之间加上电压时&#xff0c;电容器就会储存电荷。电容器的电容量在数值上等于一个导电极板上的电荷量与两个极板之间的电压之比。电容器的电容量的基本单位是法拉(F…

《区块链公链数据分析简易速速上手小册》第5章:高级数据分析技术(2024 最新版)

文章目录 5.1 跨链交易分析5.1.1 基础知识5.1.2 重点案例&#xff1a;分析以太坊到 BSC 的跨链交易理论步骤和工具准备Python 代码示例构思步骤1: 设置环境和获取合约信息步骤2: 分析以太坊上的锁定交易步骤3: 跟踪BSC上的铸币交易 结论 5.1.3 拓展案例 1&#xff1a;使用 Pyth…

QMainWindow

QMainWindow QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menu bar&#xff09;、多个工具栏(tool bars)、多个停靠部件(dock widgets)、一个状态栏(status bar)及一个中心部件(central widget)&#xff0c;是许多应用程序的基础&#x…

力扣 第 384 场周赛 解题报告 | 珂学家 | 贪心构造 + KMP板子

前言 整体评价 因为是新春过年&#xff0c;所以题目出的相对简单一些&#xff0c;T4和上周一样&#xff0c;是字符串匹配模板题。 T1. 修改矩阵 思路: 模拟 按要求模拟即可 class Solution {public int[][] modifiedMatrix(int[][] matrix) {int h matrix.length;int w m…

(AtCoder Beginner Contest 333)--- F - Bomb Game 2 --- 题解

F - Bomb Game 2&#xff1a; 题目大意&#xff1a; 思路解析&#xff1a; 这道题一读题面就知道他是个概率dp&#xff0c;假如有 i 个人我们要输出这i个人每个人最后能够留下的概率。 设状态dp[i][j] 表示当前有i个人&#xff0c;目标人物位于这i个人中的第j个位置。如果我们通…

【JavaEE Spring】Spring 原理

Spring 原理 1. Bean的作⽤域1.1 概念1.2 Bean的作⽤域 2. Bean的⽣命周期 1. Bean的作⽤域 1.1 概念 在Spring IoC&DI阶段, 我们学习了Spring是如何帮助我们管理对象的. 通过 Controller , Service , Repository , Component , Configuration ,Bean 来声明Bean对象。通…

100套嵌入式大厂笔试/面试题(3)-----------大疆

从本篇开始将会更新历年来各个公司的面试题与面经&#xff0c;题目来自于网上各个平台以及博主自己遇到的&#xff0c;答案也来自网络&#xff0c;后期3月份左右博主打算将答案整理&#xff08;放下文章的最下面&#xff09;&#xff0c;如果对大家有所帮助&#xff0c;帮忙点点…

springboot180基于spring boot的医院挂号就诊系统

医院挂号就诊系统设计与实现 摘 要 传统办法管理信息首先需要花费的时间比较多&#xff0c;其次数据出错率比较高&#xff0c;而且对错误的数据进行更改也比较困难&#xff0c;最后&#xff0c;检索数据费事费力。因此&#xff0c;在计算机上安装医院挂号就诊系统软件来发挥其…

突发!AI大牛Andrej Karpathy离开OpenAI

刚刚&#xff0c;AI大牛Andrej Karpathy官宣了一条重要消息&#xff1a;他昨天已经从OpenAI离职&#xff0c;不过这中间没有什么戏剧性冲突&#xff0c;他只是想去尝试一下自己的个人项目。 Karpathy在官宣离职的推文中写道&#xff0c;「是的&#xff0c;我昨天离开了OpenAI。…

板块零 IDEA编译器基础:第三节 下载和在IDEA中集成 Tomcat服务器 来自【汤米尼克的JAVAEE全套教程专栏】

板块零 IDEA编译器基础&#xff1a;第三节 下载和在IDEA中集成 Tomcat服务器 一、为什么选择Tomcat&#xff08;1&#xff09;常见的JAVA WEB服务器&#xff08;2&#xff09;选择Tomcat的理由 二、Tomcat 8.5下载解压三、Tomcat 结构目录四、在IDEA中集成Tomcat 假设我们已经…