使用过Anaconda、Jupyter、Pycharm、VScode、VS2022、pdb这几个IDE去编撰python项目或则维护python环境,各有各的异同点,但VScodeyyds!
可能会被网上说得天花乱坠的Python配置项吓退,会被VScode各类插件介绍吓退,但毕竟它只是个纯粹的文本编辑器,使用上去也是相当简单。
文章目录
方案一:VScode
通常情况用VScode调试会碰到一些操作的问题,一是切换python版本,二是对于多文件的项目文件,文件究竟咋放能够正确地互相引用,三是调试的时侯如何传参。
接出来简单解释一下。
首先红旗linux下载,VScode下载的官网链接:。
其次,安装插件“Python”,插件的名子就叫Python,就只要安这一个就好了。
有些系统的应用商店的软件包很旧,譬如Ubuntu18.04,从应用商店下载的不支持英文输入法。
1在VScode中切换Python版本(运行及调试时)
首先,申明并注重指出一下,切换Python版本,不须要配置环境变量。
Ctrl+Shift+P,选择配置项,输入python找到python的配置项,选择interpreter配置项去选择Python类库。
如右图所示:
更改后,在运行和调试时均会手动采取该例程。
2调试本地模块及第三方库
有关launch.json文件的配置可参考。
问题一:vscodepython调试死机
参考:vscodepython调试死机
解决办法:去官网安装VScode(在软件商店安装的阉割版未能支持英文输入),并将VScode的Python插件降级,我推荐Ubuntu18的使用2021.05.08版本。
问题二:本地模块调试方式(找不到模块)
参考:python【Nomodulenamed】找不到自己写的模块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-mmy_package.main运行模块。
这么在VScode中如何调试上述代码?有两种方法,一是另外写个函数,调用一下;另一种是愈发推荐的,直接使用VScode的模块调试器。
1)直接调用,之后调试
新建文件,引入该模块即可断点调试,如下:
import onemodule.test
onemodule.test.main() #在此行打断点
这些方法的缺陷:
跳转的时侯容易跳转到你早已装在site-packages目录下的内容,你想更改的时侯还得返回去找原代码。假如你没写完安装的程序,还可能会出现模块找不到的情况,还得去自动引一下路径,例如这样:
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即可:
2)(推荐)VScode自带的Python模块调试器
直接python-monemodule.test就可以运行,同理可以编撰对应的launch文件。
可以先用VScode生成launch文件:
大约会生成如下内容:
{
"name": "Python: 模块",
"type": "python",
"request": "launch",
"module": "module_name"
},
虽然说白了linux批量执行工具,就是,调试文件时用的是"program":"xxxx.py",而调试模块的时侯用的是"module":"xxxx"。其他的例如参数配置之类的,和文件调试是一样的。
问题三:VScode中传递命令行参数
同上,点击步入配置launch.json文件,如右图,添加args参数:
倘若您难以理解为何要做调试的配置中国linux操作系统,觉得只要print就可以解决大部份问题linux批量执行工具,你可以考虑了解一下“条件断点”,以及变量监视。
方案二:pdb
参考:怎么动态调试Python的第三方库-ybdesire-CSDN博客
优点:完全不须要配置;能直接调试模块/第三方库;对于早已晓得用命令行怎样运行,但不晓得如何在VScode中运行的python程序,不妨直接采取pdb进行调试。
缺点:无方便的图形化界面。
须要调试时,只需在调试的代码前插入如下代码:
import pdb
pdb.set_trace()
再在命令行多加一个pdb,例如执行:python-mpdbonemodule.pdbtest,即可调试。
与gdb调试相像,pdb在终端复印的代码是将要执行的而不是执行完成的。
常用指令:
n命令(next),让代码单步运行;s命令(单步步入,细运行),该命令会步入技巧。.d(data),查看的中间变量variable_name的值。(注:对于大部份的类型,直接输入变量名即可)b,在第line行打断点;b命令,查看所有断点。c命令(continue),让代码直接运行。clear
,去除第breakpoint_order个断点。l命令,查看多行当前运行的代码。任何python代码,都可直接输入,如print("1"),十分便捷。q命令,退出。
本帐号所有文章均为原创,欢迎转载,请标明文章出处:。百度和各种采集站皆不可信,搜索请慎重鉴定。技术类文章通常都有时效性,本人习惯不定期对自己的博文进行修正和更新,因而请访问出处以查看本文的最新版本。