vscode调试python

文章目录
  1. 1. 介绍
  2. 2. 方法一:简单图标点击
  3. 3. 方法二:编辑launch.json文件
  4. 4. 方法三:使用debug.py文件引入要调试的文件
  5. 5. 参考资料

介绍

在学习项目的过程中,很多时候需要通过调试来高效率的了解代码的执行过程,因此这里介绍下怎么使用vscode对python程序进行调试。

方法一:简单图标点击

vscode对一些简单的程序提供了一些可视化的调试方式,对于一些不需要指定参数等简单的调试功能,可以直接点击vscode左上角的几个图标进行debug过程。由于过于简单,此处不做介绍。

方法二:编辑launch.json文件

在工作目录下的 ./vscode/launch.json文件里面,指定了各种debug和程序运行的参数、环境、解释器、目录等基本所有的环境配置。

可以在左下角的添加配置里面快速添加常见的选项。

比如下面所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "将反汇编风格设置为 Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
]
},
{
"name": "py-dbg QLLM",
"type": "debugpy",
"request": "launch",
"python": "/home/bg51717/.conda/envs/QLLM/bin/python",
// "program": "/home/bg51717/project/QLLM/qllm/__main__.py",
"module": "qllm",
"console": "integratedTerminal",
"args":[
"--model=/home/bg51717/project/models/facebook/opt-350m",
"--method=gptq",
"--nsamples=64",
"--wbits=4",
"--groupsize=128",
"--save",
"/home/bg51717/project/QLLM/facebook/opt-350m_gptq4b",
"--export_onnx",
"/home/bg51717/project/QLLM/onnx_model/facebook/opt-350m_gptq4b"
],
"env": {"PYTHONPATH": "/home/bg51717/project/QLLM/qllm"},
"cwd": "/home/bg51717/project/QLLM"
}
]
}

这里参数非常多(建议使用的时候查询 gpt搜索引擎文档等。

这里介绍几个常用的选项。此外,在编辑的时候可以类似 Linux那样使用 ${fileDirname}来引用 vscode程序的当前变量比如工作目录

参数 含义 类型
name 过程名字 str
type 过程类型 str
python 解释器(使用虚拟环境的时候需要注意指定 str
program 程序文件,按照脚本方式运行过程 str
module 模块名,按照模块方式运行过程 str
args 运行过程的参数 list
env 环境变量 dict
cwd 工作目录 str

此外,在使用的过程中python里面绝对引入、相对引入等。建议参考python相对导入常见问题和解决方案 - 知乎 (zhihu.com)

此处发现那里也有些没有提及的东西。

  • 解决方案错误一:ImportError: attempted relative import with no known parent package 里可以不修改代码,使用 python -m命令+调整工作目录成功运行。(笔者当时遇到一个坑,当时没有注意的调试的是工程目录里的qllm文件还是env里装的py包

方法三:使用debug.py文件引入要调试的文件

如题,建立一个 debug.py文件引入要调试的文件,类似于使用代理进行调试过程。

参考【Python 入门】新手必会 vscode Debug 调试技巧_哔哩哔哩_bilibili

参考资料

由于评论系统依托于Github的Discuss存在,因此默认评论者会收到所有通知。可以在邮件里点击"unsubscribe"停止接受,后续也可以点击下列仓库进行通知管理: bg51717/Hexo-Blogs-comments
Since the comment system relies on GitHub's Discussions feature, by default, commentators will receive all notifications. You can click "unsubscribe" in the email to stop receiving them, and you can also manage your notifications by clicking on the following repositories: bg51717/Hexo-Blogs-comments