介绍
在学习项目的过程中,很多时候需要通过调试来高效率的了解代码的执行过程,因此这里介绍下怎么使用vscode对python程序进行调试。
方法一:简单图标点击
vscode对一些简单的程序提供了一些可视化的调试方式,对于一些不需要指定参数等简单的调试功能,可以直接点击vscode左上角的几个图标进行debug过程。由于过于简单,此处不做介绍。
方法二:编辑launch.json文件
在工作目录下的
./vscode/launch.json
文件里面,指定了各种debug和程序运行的参数、环境、解释器、目录等基本所有的环境配置。
可以在左下角的添加配置里面快速添加常见的选项。
比如下面所示:
{
// 使用 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