如何在vscode中debug python代码,包括如何优雅地传入多个参数

这篇具有很好参考价值的文章主要介绍了如何在vscode中debug python代码,包括如何优雅地传入多个参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Visiul Studio Code, 简称vscode,是一款轻量级代码编辑器,其丰富的扩展程序使得其可以方便地作为任何语言的编辑器。

本文将讲述如何在vscode中对python脚本文件进行debug。

本文主要包括debug的两种方式:

  • 基本debugging(basic debugging):可以解决大部分情况
  • 命令行debugging(command line debugging): 用于需要传参数繁多或者远程调试的程序

如难以理解或出现错误欢迎指正

0 要求

在vscode扩展(extension)如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python
中先安装Python扩展

如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

Python扩展提供了python的语法,运行,环境选择等支持,是vscode写python代码的一个好助手。

安装完Python扩展后,打开python脚本文件则会在右下角(低版本可能在左下角)出现环境设置以选择你想用的python解释器如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python
而右上角则会出现运行和debug的选项。

1 基本debugging

  • 如果你只是想简单地debug程序,没有其他需求,可以直接打断点,然后右上角点击debug,程序会自动地debug当前打开的python文件。
    如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

  • 如果你想定制化一些debug选项,则按照以下步骤进行:

    1. 侧边栏选择运行和调试如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

    2. 如果你已有dubug配置文件,则跳3. 否则请先创建一个launch.json文件如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python
      并选择配置文件为python文件如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

    3. 此时你的工作目录下会多一个目录.vscode和该目录下一个launch.json文件,该文件则配置了你的debug配置。在运行和调试侧边栏中点击绿色三角则启动debug程序如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

2 debug配置文件

vscode依靠.vscode目录下的launch.json来管理你的debugger程序,下面是一个该文件的实例:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true
        }
    ]
}

其中"configurations"中的一个实例则为一个debugger程序配置,当想增加多个debugger程序时(如你可能需要两组不同的参数分别来debug,而不想每次都修改),则可以在"configurations"新加一个配置文件,如下所示:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Current File",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true
    },
    {
      "name": "the second debugger",
      "type": "python",
      "request": "launch",
      "program": "${file}",
      "console": "integratedTerminal",
      "justMyCode": true
    }
  ]
}

下面将说明每个debugger配置中键值的含义:

name

name是该debugger的名字,会显示在运行和调试侧边栏中的下拉框中,比如上面的配置文件则会有以下的下拉框:

如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

选择对应的debugger,并点击绿色三角则可以启动对应的debugger。

type

设置使用什么的debugger,设为python,无需修改。

request

调试模式,可选:

  • launch: 在program指定的文件上启动debugger
  • attach: 将debugger附到(注入到)一个正在运行的python进程上。用以远程debug,也可以用来解决多参数问题,具体请参考后面的部分。

program

提供具体想要debugger去运行的python脚本文件,可以是相对路径也可以是绝对路径,比如上面配置文件中的${file}代表当前vscode激活的文件(即当前打开的,而且输入光标所在的文件),也可以指定某特定文件,如设置

"program": "${workspaceFolder}/main.py"

则代表在工作目录下的main.py上启动debugger。

module

指定需要debug的module,等价于命令行中-m参数,具体可参考Python.org,一般无需关心。

python

指定需要的解释器路径,如果没有指定则默认为当前工作空间选择的解释器(即在你打开python文件时,右下角指定的python解释器)

pythonArgs

数组类型

需要传给解释器(不是python脚本)的参数,通过数组给出,如下所示"pythonArgs": ["<arg 1>", "<arg 2>",...].

args

数组类型

传给python脚本的参数(请与上面的pythonArgs进行区分),通过数组给出,如下所示"args": ["--quiet", "--norepeat", "--port", "1593"]

注意:每个参数必须为单独一项,不得出现"--port 1593"的情形,如果参数过多,可以参考下面命令行debugging的方式。

stopOnEntry

布尔类型

当设为true,则会自动在被debug的程序上第一行代码停止,忽略或者设为false则在第一个断点停止。

console

如果不指定redirectOutput的情况下,程序的输出会输出到哪里

输出位置
"internalConsole" vscode的debug输出控制台
"integratedTerminal" (default) vscode的集成终端
"externalTerminal" 分离的一个输出窗口

autoReload

当修改了代码后,是否自动重启debug程序,启动方式如下:

{
  "autoReload": {
    "enable": true
  }
}

subProcess

是否开启子程序debug,默认false

cwd

设置debugger工作目录,如果不指定则默认为vscode的工作目录,会影响你代码中相对路径。

redirectOutput

是否重定向输出到调试控制窗,即下图该窗口中:

如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

justMyCode

忽略或者设为true则只会在用户写的代码停留,设为false则会debug标准库。

3 命令行debugging

命令行debugging用以远程debug,或者debug正在运行中的程序,我一般用来解决传参过多问题。

当需要给脚本文件传参,而参数过多时,需要一个一个给配置文件中的args添加,非常麻烦,所以可以选择直接运行程序,再进行debug捕捉的方式。

首先在配置文件中加入下面的配置实例:

{
  "name": "Python: Attach",
  "type": "python",
  "request": "attach",
  "connect": {
    "host": "localhost",
    "port": 5678
  }
}

其次在当前环境中安装debugpy,如pip install debugpy.

通过下面的语法运行想要debug的文件(提前打断点):

python -m debugpy --listen 5678 --wait-for-client ./myscript.py

然后在运行和调试侧边栏中的下拉框中选择相应的debugger并启动,则会自动捕捉该程序并进行debug,如下所示:

如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

该方法在对remote-ssh连接的远程服务器代码进行debug时,不需要指定服务器域名和ip,当作本地即可。

技巧

下图给出了一些我常用的debug功能,仅供参考

如何在vscode中debug python代码,包括如何优雅地传入多个参数,vscode,python

参考文献

vscode官方文档文章来源地址https://www.toymoban.com/news/detail-671904.html

到了这里,关于如何在vscode中debug python代码,包括如何优雅地传入多个参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】在同一图形中更加优雅地绘制多个子图

    数据可视化非常重要,有一句俗语叫做 一图顶千言 ,我相信好多小伙伴应该都听说过这句话;即使是有人第一次听到,我想应该也会觉得赞成,这足以说明数据可视化的重要性。我们在前一篇博客中,介绍了如何利用 subplot 来在一张子图里绘制多个子图,最近我又发现了一

    2024年02月11日
    浏览(25)
  • 如何在VSCode中优雅地书写Verilog

    安装Verilog-HDL/SystemVerilog/Bluespec SystemVerilog插件实现语法高亮、定义跳转、代码检错 配置方法: 1.打开配置界面. 2.在Ctags路径选项的框内填入ctags.exe所在路径.(实现定义跳转功能) 3.语法检查选项,检查器选择modelsim,并选择Modelsim的工作库所在位置.(实现语法检查) 工作库的建

    2024年04月28日
    浏览(28)
  • vscode python remote debug极速入门

    主要适用于debug python 程序,尤其是深度学习刚入门需要使用remote 连接到linux进行程序运行,想调试一下的同学。 当然非深度学习也可以参考食用本文哈哈哈。 提前准备:代码仓库已经拉取到linux上面,且已经知道运行的方式。 比如: 项目的启动命令为: python pretrain.py --d

    2024年02月05日
    浏览(37)
  • VSCode-Python传参数进行Debug

    新建demo.py 命令行运行 python demo.py --host 127.0.0.1 --port 22 --user root 可以看到输出结果 在vscode点击debug的图标--create a launch.json file---python File 初始的json文件如下: Ctrl+shif+p切换python环境并更改./vscode/launch.json如下 之后打断点按F5或者Run--Start Debugging 就可以了

    2024年02月13日
    浏览(43)
  • vscode-python的debug 教学(最全)

    Visual Studio Code 的主要功能之一是其强大的调试支持。VS Code 的内置调试器有助于加速编辑、编译和调试循环。 在插件库内搜索python Debugger,安装插件 (1)创建debug_learning.py测试文件 (2)设置断点 (2)启动debug模式 (3)debug的各个按钮的介绍 开始调试 以下文档基于内置的

    2024年04月11日
    浏览(20)
  • 【bug】vscode python 3.6 无法debug 解决方案

    某个环境是使用python 3.6 安装的,vscode没法调试。是由于python插件太新了,直接下载一个,用VSIX安装 1.下载python 拓展包 https://marketplace.visualstudio.com/_apis/public/gallery/publishers/ms-python/vsextensions/python/2022.6.0/vspackage 2.可以将2022.6.0更改为指定版本,2022.6.0经过测试支持python 3.6 在v

    2024年02月11日
    浏览(48)
  • VScode 调试python程序,debug状态闪断问题的解决方法

    0. Few words 之前一直在VSCode中debug C++和Python的程序没出过闪断的问题,但是最近在另一台电脑上debug,同样的方法,设置launch.json和CMakeList加debug状态等等操作,如我另一篇blog写的一样,可以点这里查看。 但是,就是同样的方法,debug C++的程序没问题,就是debug python的程序就会

    2024年02月10日
    浏览(27)
  • vscode debug python launch.json添加args不起作用

    为了带入参数调试python 程序,按照网上搜到的教程配置了lauch.json文件,文件中添加了\\\"args\\\": [“model” “0” “path”] 但是点击debug按钮,并没有读取到launch文件中的args参数,python中打印len(sys.argv)依然等于1。 参考:vscode-python 中的 issues vscode-doc: Python debugging in VS Code 简单来说

    2024年02月09日
    浏览(38)
  • 从根本上优雅地解决 VSCode 中的 Python 模块导入问题

    整体概述: 在我尝试运行 test_deal_file.py 时,我遇到了一个 ModuleNotFoundError 错误,Python告诉我找不到名为 controllers 的模块。这意味着我无法从 deal_file.py 中导入 read_excel 函数。 为了解决这个问题,我尝试了几种方法。 首先,我使用了相对导入,这在不改变当前工作目录的情况

    2024年04月17日
    浏览(26)
  • 【BUG解决】vscode debug python launch.json添加args不起作用

    为了带入参数调试python 程序,点击了ui界面右上角的debug按钮,配置了lauch.json文件。按照网上搜到的教程添加了 \\\"args\\\": 但是点击ui界面的debug按钮,发现配置的参数并不起作用。 原因: 在 vscode-python 项目的issue和issue里找到答案。 省流:ui界面右上角的debug按钮是一个扩展插件

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包