本节介绍编写Python代码的编辑器、Python的工具模块以及一些开发方面的建议。 01.03.01 编辑器 编写Python代码需要一个好的编辑器,最具代表性的编辑器有下面两类: Vim(http://www.vim.org) Emacs(http://www.gnu.org/software/emacs) Vim也好,Emacs也好,都是类Unix操作系统下的开发人员非常熟悉的编辑器。这两款编辑器采用了截然不同的操作方式 ,它们并非Python专用,我周围的开发人员几乎都在使用其中的一款。另外,能够自由更改设置,也是这两款编辑器长盛不衰的原因之一。下面分别介绍一下两款编辑器用来写Python时常用的设置。 Vim Vim的基本设置是在用户的Home目录下建立一个.vimrc配置文件,Vim根据该文件的设定,体现具体的定制内容。首先根据Python的代码特征,设定其中的换行缩进。打开.vimrc,写下如下内容。 用于Python的配置 syntax on filetype plugin indent on syntax on(根据Python语法着色) syntax on不仅仅用在Python,在其他编程语言中也会使用,根据语言语法进行高亮着色。 filetype plugin indent on(符合Python结构的配置) 当打开扩展名为.py的文件,遇到def或者if等Python关键字后再遇到换行时,filetype plugin indent on会将下一行的光标自动缩进到合适的位置。另外,Vim还可以将其配置分散到多个文件中。我们可以根据下面的范例,将所有Vim准备配置Python的内容写入一个文件。 准备Python配置的文件 $ mkdir ~/.vim $ mkdir ~/.vim/ftplugin $ touch ~/.vim/ftplugin/python.vim 新增一个Python的配置文件python.vim。 将Tab键换成四个空格 setl expandtab setl tabstop=4 setl shiftwidth=4 setl softtabstop=4 上面的设定完成了以下功能。 将所有的Tab键替换成空格键 按下Tab键后,自动替换成四个空格键 上面的规则是Python社区推荐的代码风格,叫做PEP8(后面会具体讲到,http://www.python.org/dev/peps/pep-0008),即将缩进用四个空格代替。 下面的设定是在文件保存时,删除每一行末尾的空格。 删除行末空格 autocmd BufWritePre * :%s/s+$//ge PEP8还规定每一行不得超过79个字符,因此到第80个字符时需要自动换行。下面我们就来设置一下。 每行到第80个字符时自动换行 setlocal textwidth=80 如此一来,用Vim编写Python代码的准备工作就完成了。 Emacs Emacs的相关配置按照下面过程按部就班即可。 Emacs在一开始就已经安装了所谓的Python Mode。因此,用Emacs来写Python之前,我们无需做什么特别的设置,最多增加一项将Tab转换为空格就足够了。 配置Emacs是通过.emacs文件来完成的,首先建立该文件。 创建.emacs文件 $ touch ~/.emacs 文件创建好之后,在文件中添加下面的内容。 将默认缩进改成空格 (setq indent-tabs-mode nil) (global-font-lock-mode 1) global-font-lock-mode的作用是根据Python语法结构进行高亮区别。 python.org的官方wiki里给出了几种编辑器的推荐配置,其中也包含了Emacs的配置。 Python Editor(http://wiki.python.org/moin/PythonEditors) Emacs Editor(http://wiki.python.org/moin/EmacsEditor) Emacs Python Mode(http://wiki.python.org/moin/EmacsPythonMode) PyCharm 对于以往使用Eclipse之类的IDE(Integrated Development Environment,集成开发环境)开发的人来说,有时与其使用普通编辑器,不如用IDE来得方便。Python相关的IDE也有几个选择,最近经常听到的是PyCharm(http://www.jetbrains. com/pycharm)。 PyCharm是在2010年发布的收费Python IDE,支持Django开发框架。虽然说是付费软件,但有30天的免费试用期,且同时支持Windows、Mac、Linux等多个操作系统。 对于不太喜欢使用Vim或者Emacs的开发人员来说,可以考虑一下它。 01.03.02 Python开发小贴士 本节将会介绍Python开发时,需要知道的一些模式以及Python的常用模块。 交互模式 如果仅仅运行python命令,就会进入Python的交互模式。交互模式是用类似对话方式书写Python代码并执行的一种形式。下面让我们试着直接输入python命令看看。 启动交互模式 $ python Python 2.7.2+ (default, Oct 4 2011, 20:06:09) [GCC 4.6.1] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 此时进入等待输入的模式,在这个模式下,直接输入Python的代码并且执行,输出会立刻展现在你面前。 Python代码执行示例 >>> import sys >>> sys.path ['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/gtk- 2.0'] >>> 这里的sys是Python的基本模块,导入后在屏幕上输出的是Python搜索包路径的所有信息。 执行的结果会保存在_变量中,再一次直接运行它,会得到同样的结果 。这种模式对于调试以及验证简单代码都非常方便。退出交互模式的方法是输入Ctrl+d或输入exit()。 启动Python的交互模式时,会自动加载环境变量PYTHONSTARTUP中配置的文件,如果需要在启动时导入(import)一些文件,可以提前设置好。 另外,在Python的交互模式中,为了方便调试,可以利用一个叫做IPython的小工具,该工具同样可以使用pip安装。 $ pip install IPython IPython安装完成后,再一次进入交互模式,就可以完成下面这些之前不能做的事情: 使用Tab键补全内容 使用常用的Shell命令 使用pdb工具调试 pep8(检查代码风格的工具) Python有一个叫做PEP(Python Enhancement Proposals)的社区,该社区的宗旨是进一步完善Python。在社区中常常会给出一些指导性文件。 PEP网址 http://www.python.org/dev/peps/ 该社区发布了一个对于Python代码风格的建议性文件PEP8(http://www.python. org/dev/peps/pep-0008)。与之对应,Python提供了一个pep8模块,检查代码是否符合pep8规范。该模块可以通过下面的pip命令安装。 安装pep8模块 $ pip insatall pep8 pyflakes(Python语法检查工具) pyflackes是用来检查Python代码语法销误的模块,它除了检查例行的语法错误外,对于导入的模块却设有最终使用等非语法问题也能及时予以发现。 pyflakes的使用方法与pep8基本类似,pyflakes命令安装好后,将需要检查文件的文件名作为参数放在该命令后即可。这样该工具就会对该文件做出检查。pyflakes同样可以使用pip安装。 安装pyflakes $ pip install pyflakes 这里我们介绍了最常使用的pyflakes,除此之外,还有PyLint以及pyChecker等常用工具,你可以根据自身的开发情况来选择。 pdb(调试工具) 在最后,我们介绍一下Python的调试工具。对于熟悉C语言调试的开发人员而言,最熟悉的调试工具莫过于gdb;而对于使用IDE的开发人员而言,往往对IDE提供的插入断点、单步执行等功能倍感亲切。 pdb是Python的标准模块配置,因此不需要再安装。最简单的使用方式莫过于在希望代码停下来的位置插入如下代码。 插入pdb代码 def add(x, y): return x + y x = 0 import pdb; pdb.set_trace() x = add(1, 2) 执行上面的代码会发现,一旦执行到插入pdp代码的位置,程序就会立刻停了下来,并且还会出现pdb交互方式的界面。 pdb执行的例子 $ python pdbtest.py > pdbtest.py(7)<module>() -> x = add(1, 2) (Pdb) 本节介绍了有助于Python开发的相关工具、模块等,因为内容比较广泛,所以在介绍具体使用时并未深入。如果你想了解更加详细的内容,可以参考各工具、模块对应的文档。
Python开发实战——01.03 编辑器与方便的开发工具
书名: Python开发实战
作者: [日] BePROUD股份有限公司
出版社: 人民邮电出版社
译者: 盛荣
出版年: 2014-6
页数: 378
定价: 79.00元
装帧: 平装
ISBN: 9787115320896