使用过 Anaconda、Jupyter、Pycharm、VScode、VS2022、pdb 这几个 IDE 去编写 python 项目或者维护 python 环境,各有各的优缺点,但 VScode yyds!
可能会被网上说得天花乱坠的 Python 配置项吓退,会被 VScode 各种插件介绍吓退,但其实它只是个纯粹的文本编辑器,使用起来也是相当简单。
一般情况用 VScode 调试会遇到一些操作的问题,一是切换 python 版本,二是对于多文件的项目文件,文件到底咋放才能正确地相互引用,三是调试的时候怎么传参。
接下来简单解释一下。
首先,VScode 下载的官网链接:https://code.visualstudio.com/。
其次,安装插件“Python”,插件的名字就叫 Python,就只要安这一个就好了。
有些系统的应用商店的软件包很旧,比如 Ubuntu18.04,从应用商店下载的不支持中文输入法。
首先,声明并着重强调一下,切换 Python 版本,不需要配置环境变量。
Ctrl+Shift+P
,选择配置项,输入python
找到 python 的配置项,选择 interpreter
配置项去选择Python解释器。
如下图所示:
修改后,在运行和调试时均会自动采取该解释器。
有关
launch.json
文件的配置可参考VScode官网的文档-Launch configurations。
参考:vscode python 调试闪退
解决办法:去官网安装VScode(在软件商店安装的阉割版无法支持中文输入),并将VScode的Python插件降级,我推荐 Ubuntu 18 的使用 2021.05.08 版本。
参考:python 【No module named】找不到自己写的模块 3种情况及解决方法-玛丽莲茼蒿-CSDN博客
python 项目可以组织成包,如果组织成包,它的目录结构是这样的:
my_package/
├── my_package_code/
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
├── README.md
├── setup.py
└── requirements.txt
一般都需要两级目录。
而对于 python 包,不能直接运行,但可以安装好之后直接引入。
有关 setup.py
的写法值得新开一篇文章,我建议如果不清楚怎么写,最好直接问 ChatGPT,在它给你生成的模板上去改,这样对新知识的需求量是最少的。
如果组织成模块,就可以比较方便地直接运行,只要把模块的入口代码放到根目录下就行了,比如这样:
my_package/
├── my_package_code/
│ ├── __init__.py
│ ├── module1.py
│ └── module2.py
├── __init__.py
├── main.py
├── README.md
├── setup.py
└── requirements.txt
这种情况可以用 python3 -m my_package.main
运行模块。
那么在 VScode 中怎么调试上述代码?有两种方式,一是另外写个函数,调用一下;另一种是更加推荐的,直接使用 VScode 的模块调试器。
新建文件,引入该模块即可断点调试,如下:
import onemodule.test
onemodule.test.main() #在此行打断点
这种方式的缺陷:
import sys
import os
sys.path.append(os.pos.path.dirname(__file__))
import onemodule.test
onemodule.test.main() #在此行打断点
并且,注意在 launch.json
文件中添加 justMyCode: false
,否则无法跳转进入模块文件。
如下图,点击添加配置进入launch.json
文件:
如下图,将justMyCode
选项改成false
即可:
直接python -m onemodule.test
就可以运行,同理可以编写对应的 launch 文件。
可以先用 VScode 生成 launch文件:
{
"name": "Python: 模块",
"type": "python",
"request": "launch",
"module": "module_name"
},
其实说白了,就是,调试文件时用的是 "program": "xxxx.py"
,而调试模块的时候用的是"module": "xxxx"
。其他的比如参数配置之类的,和文件调试是一样的。
同上,点击进入配置launch.json
文件,如下图,添加args参数:
如果您无法理解为什么要做调试的配置,认为只要 print 就可以解决大部分问题,你可以考虑了解一下“条件断点”,以及变量监视。
参考:如何动态调试Python的第三方库-ybdesire-CSDN博客
优点:完全不需要配置;能直接调试模块/第三方库;对于已经知道用命令行如何运行,但不知道怎么在VScode中运行的python程序,不妨直接采取pdb
进行调试。
缺点:无便捷的图形化界面。
需要调试时,只需在调试的代码前插入如下代码:
import pdb
pdb.set_trace()
再在命令行多加一个pdb
,比如执行:python -m pdb onemodule.pdbtest
,即可调试。
与gdb调试相似,pdb
在终端打印的代码是即将执行的而不是执行完成的。
常用指令:
print("1")
,非常方便。本账号所有文章均为原创,欢迎转载,请注明文章出处:https://blog.csdn.net/qq_46106285/article/details/130469097。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。