内容摘要:前面讨论过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版本):
安装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>提示后,就可以查看内存中的变量啦!
- 提示与跟踪
代码提示,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环境(商业的,有银子可以买),总之,萝卜青菜各有所爱,一个工具用好了就行。