03_Python程序调试工具-Spyder

内容摘要:前面讨论过Python程序撰写工具Jupyter,但我想大多数人更熟悉Matlab的集成调试环境,如果你用Python有没有这样类似的环境呢?今天我们就聊聊Spyder,一个与Matlab像的不能再像的集成开发环境(IDE)。下面我们就认识一下这个加速Python开发和程序调试的好工具!

前面介绍过Python以及Jupyter的web编辑环境。俗话所:工欲善其事必先利其器,如果用兵器来形容,Jupyter可以理解为刀,Spyder就是剑,设计模式算是心法吧。当你的武学修为到了一定程度,仅熟悉一种兵器肯定不够,Spyder就是你要升级的技能包。

Spyder是一个用于科学计算的使用Python编程语言的集成开发环境(IDE)。它结合了综合开发工具的高级编辑、分析、调试功能以及数据探索、交互式执行、深度检查和科学包的可视化功能,为用户带来了很大的便利。

Spyder不仅仅是一个代码编辑的舞台,还是一系列工具有机组合而成的一个生态系统。小哥相信你熟悉了环境之后,无疑会打开另一个多姿多彩的丰富世界。

1、熟悉界面

作为一个在Python用户中知名度很高的集成开发环境,Spyder自然有其独特之处(如果您是安装完整版的Anaconda,Spyder默认自动安装;如果您仅使用Miniconda,也可以通过pip命令来安装),启动后的界面如下(小哥用的是python3.7环境,spyder4.0版本):

图1 启动Spyder后的界面-4.0.0版本

安装Spyder后,下面我们看看它有那些特点:

  • 类MATLAB设计

Spyder在设计上参考了MATLAB,变量查看器模仿了MATLAB里“工作空间”的功能,并且有类似MATLAB的PYTHONPATH管理对话框,对熟悉MATLAB的Python初学者非常友好。

  • 资源丰富且查找便利

在Spyder中拥有变量自动完成、函数调用提示以及随时随地访问文档帮助的功能,并且其能够访问的资源及文档链接包括了Python、Matplotlib、NumPy、Scipy、Qt、IPython等多种工具及工具包的使用手册。

  • 对初学者友好

Spyder在其菜单栏中的【Help】里给新用户提供了交互式的使用教程以及快捷方式的备忘单,能够帮助新用户快速直观地了解Spyder的用户界面及使用方式。

  • 工具丰富,功能强大

Spyder里除了拥有一般IDE普遍具有的编辑器、调试器、用户图形界面等组件外,还具有对象查看器、变量查看器、交互式命令窗口、历史命令窗口等组件,除此之外还拥有数组编辑以及个性定制等多种功能。

2、代码编写

用惯了编译类语言,最常见的就是调试了。比如:跟踪变量、设置断点什么的。要实现这些目标,在Spyder都有。好了,吹了半天后,赶快具体介绍一下spyder环境的用法吧。

  • 快捷键和调试

一般来说调试的快捷键会设置为F5,它的调试是Ctrl+F5,还有逐步调试也不一样,总之为了方便,我把调试快捷键改成了习惯的方式。修改的方法是工具栏上的TOOL->Preferences->Keyboard shortcuts,然后相应地对快捷键进行修改。

断点的设置方式,一般来说断点是点击一次编辑区旁边的竖条,但是Spyder是两次,取消也是连击两次,个人非常不能理解为什么要这么设置。当然你也可以直接选择断点的快捷键,默认快键键是Ctrl+F12。

调试的时候还可以用pdb的库,用法是使用pdb.set_trace()可以设置断点

import pdb
pdb.set_trace()

下图就是代码中调用pdb的断点调试方法,出现ipdb>提示后,就可以查看内存中的变量啦!

图2 通过pdb设置断点
  • 提示与跟踪

代码提示,matlab的代码提示是输入函数的前几个字母然后按tab键,python则是先写个.然后按tab键。如果是创建的对象就直接写个.就有代码提示了。

摁住Ctrl,然后鼠标点击函数、变量等,会跳转到定义的代码块

注释的快捷键是ctr+1;查找函数定义位置:ctrl + g

~ps: 脚本的路径最好不要写中文,因为很有可能python认不出~

3、快捷键小结

  • Ctrl+1: 注释、取消注释
  • Ctrl+4/5: 块注释 / 取消块注释
  • F12: 断点 / 取消断点/在语句前进行双击
  • F5: 运行
  • Ctrl+F5: 启动调试
  • Ctrl+F10: 单步调试,跳过函数内部实现
  • Ctrl+F11: 单步调试,进入函数内部实现
  • F9: 从当前光标所在行开始执行
  • F8: 查看编译结果(包括Erro和Warning信息)
  • Ctrl+Shift+W: 关闭所有打开的 .py文件
  • Ctrl+Alt+←: 光标跳回之前所在位置
  • Ctrl+L:跳转到行号
  • F11:全屏
  • Tab:空行前是代码缩进;在输入一个字母后,按Tab健会自动补全或者代码提示。
  • Shift+Tab:撤销代码缩进

一句话总结:要想成为一个Pythonic用户,特别是当你大多数情况下是用本地计算资源在调试程序的时候,小哥认为在Win环境下Spyder当然是不二之选,其实Pycharm也是很好的IDE环境(商业的,有银子可以买),总之,萝卜青菜各有所爱,一个工具用好了就行。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352

推荐阅读更多精彩内容