spyder4使用和调试教程
首先,spyder4.x比较spyder3.x强大很多了,ui等各方面也很多。这篇文章以我平时最常用的spyder4.1.2、4.1.5为例,分享一些使用spyder4.0使用和调试过程中的一些心得。本文分为两个部分:第一部分,介绍spyder4的强大功能。第二部分,介绍spyder4的调试功能。熟悉使用spyder写代码和运行程序的朋友可以直接跳过第一部分,直接看第二部分。第一部分,spyder
首先,spyder4.x比较spyder3.x强大很多了,ui等各方面也好很多。这篇文章以我平时比较常用的spyder4.1.2、4.1.5为例,分享一些使用spyder4.0使用和调试过程中的一些心得。
本文分为两个部分:第一部分,介绍spyder4的强大功能。第二部分,介绍spyder4的调试功能。
熟悉使用spyder写代码和运行程序的朋友可以直接跳过第一部分,直接看第二部分。
PS: 大模型基础和进阶付费课程(自己讲的):《AIGC大模型理论与工业落地实战》-CSDN学院 或者《AIGC大模型理论与工业落地实战》-网易云课堂
第一部分,spyder4的强大功能
工欲善其事必先利其器。
这也是为什么更喜欢用spyder的原因,不能否认pycharm有更强大的跳转和调试功能,另外字体也和布局也太丰富了吧。文末我会分享图中spyder的字体,找了好多年了,也就这个字体好看一些。
本文无意贬低哪个ide,只是对比两个编辑器功能,分享一下使用它们的心得。
1.随心所欲运行代码块。
意思是,在spyder里,随便写一行或者多行代码,就可以直接输出结果,不需要像在pycharm里先写好,然后右键空白,然后跑整个py文件。当然pycharm也有插件支持这个功能,目前我也不太清楚。
比如这张图里。在spyder中写好的程序:
把鼠标放在当前行import nump as np,直接F9,就可以运行好,或者导包或者赋值,然后跳到下一行,一直F9, 就可以一直运行下去。
当然,也可以鼠标全部选定这几行,按一下F9搞定。重点是,不论是变量,还是函数,还是类。 都可以选定好,然后一键运行。如下图所示:
定义好的所有变量和函数等等会在右上角中展示出来,有变量名称,类型,size和值。比较常用的是中间这个黑白的橡皮擦,点击一下变量全部消失,非常好用…当然,清除变量的工作只是我们不能在页面上看到它了,在右下角在此打印变量也会没有,但是还是占用内存的。这里需要稍微注意一下。
2. 强大的变量可视化能力
正如我们在上面这张图里看到的,当我们点开numpy数组d,可以直接查看变量的样子。我也不需要print,不需要想象,我只想定义好了,让它躺在那里,然后静静的看着它。。。这点在pandas和numpy查看结构化数据非常好用,变量长度很多的时候也可以左右和上下拖动。吐槽一句,pycharm也是有的,定义的变量有个view按钮,打开以后,嗯。。。
3.强大的代码打印能力
当我双击这里的定义好的变量c,直接F9的时候。
当我双击这里还没定义的"{1: b}“,直接F9的时候。
直接给我定义好了,直接打印出结果了,不用print了啊!而且”{1: b}"出现在代码的中间啊!如下图:
这意味着,无论你面前有多少代码,无论结构多么复杂,你都可以随意选定任意长度的内容,直接运行!
当然这一条和第一条其实差不多的。但重点是,重要的事情说三遍:
这个功能在调试的时候也可以用啊!!!
这个功能在调试的时候也可以用啊!!!
这个功能在调试的时候也可以用啊!!!
所以接下来我们也重点讲解spyder4.x的调试功能。
第二部分,spyder4.x的调试功能
博客使用spyder3调试python程序的简明教程里,有对spyder3的调试功能讲解的比较清楚了。
4.x使用起来和它的过程差不多,有些快捷键还是改了,所以我根据自己的例子,重新介绍一遍它的调试功能。
1.加断点
鼠标放在红点这里,单击。或者光标放到当前行的任意位置,F12即可。
2.开始调试和停止调试
菜单栏蓝色最左侧按钮,点击之后,开始调试并跑到第一个断点。
右侧的蓝色大方框,点击则停止调试。
编辑器右下角出现ipdb>,表示程序开始调试,并准备在右下角打印内容
3.逐行调试
直接点击第二个按钮,程序跑到当前断点的下一行,也就是运行了当前行。一直点击可以一行一行往下跑。
4.进入函数体、类中调试
在下图中,首先把断点加到运行函数或者实例化类的这一行,开始调试。
然后点击第三个按钮,也就是step into,
程序则直接跑到函数体内,这时候可以使用第二个按钮逐行运行,往下一行行调试。
重点来了,当我运行完c的这一行,在编辑器右上角就出了变量c。
不仅如此,双击变量c,F9!右下角也打印出了c!所以可以想象,即使程序一直调试的过程中,我也可以随意双击任何变量直接打印来看!
5.一步完成函数体、类的调试,并返回。
比如程序进到函数体中以后,点击调试的第四个按钮,直接完成整个函数的调试,并跳到return这里。
再次点击第四个按钮,会跳出函数,回到函数调用时的地方。当然也可以点击第二个按钮下一行,也是同样的效果。
6.断点跳转
第五个按钮,蓝色的双箭头,表示在多个断点之间进行跳转。
比如下图加了多个断点,每次点击断点跳转,则根据程序的运行顺序,从第一个断点开始,依次跳转到下一个断点。
最后。也吐槽一下spyder调试功能的劣势,相比于pycharm,spyder在使用调试过程中,右上角显示的变量只限于当前函数内的变量。当然,如果是复杂的多层实例化的类,右上角中也可以一层一层打开类的变量和方法来看。但pycharm更方便,可以直接一层层箭头打开实例化类的变量和方法展开来看,所以是比spyder4更加友好的。
欢迎更多的朋友留言提出有关spyder4.0的更好的建议。比如,我现在也不清楚有没有一键清除所有断点的快捷键。
代码图中字体的名称:Andale Mono;本文代码运行在ubuntu16.04下的spyder中。
最后,也推广一波自己的公众号:“NLP小讲堂”。公众号会持续更新NLP相关的前沿内容,喜欢的朋友可以关注一下。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)