2.3 Python开发环境

选择一个适合自己的IDE环境,能够大大提高程序学习的效率和乐趣!

Python安装程序自带的开发环境是IDLE,但是总体来说,IDLE使用起来还是不够方便,不够智能。Python的其他开发环境不下10种,比如PyDev(结合Eclipse一起使用)、PyCharm、Spyder、PythonWin、Ulipad、PyScripter、ipython、bpython、PyPE、Eric、SPE、WingIDE(商用)等。像UltraEdit、NotePad等这些文本编辑器也可以作为Python的开发环境。

Eclipse是流行的Java、C、C++等语言的开发环境,同时是开源的,学习门槛低;而PyDev具有优秀的Python代码编辑功能,作为Eclipse的插件,PyDev安装后便可继承Eclipse丰富的编辑功能,编辑出可读性很强的Python源代码程序,而且调试方便,所以本书采用PyDev+Eclipse作为开发运行环境。

2.3.1 PyDev的安装

因为PyDev是作为Eclipse的插件来发挥作用的,所以安装之前必须先安装好Java SDK以及Eclipse,Java SDK是Eclipse运行所需要的环境。Java SDK和Eclipse的安装这里略过。

提 醒

安装PyDev 6.3及更新的版本至少需要Java 8以及Eclipse 4.6(Neon)。

PyDev可通过Eclipse Update Manager安装,或者将下载的PyDev插件解压,将其plugins和features目录下的文件分别复制到Eclipse的plugins和features目录下,重启Eclipse就可以了。这里介绍第一种安装方式。

首先在 Eclipse 菜单栏中找到 Help菜单,选择“Help” >“Install New Software...”,如图2-14所示,单击“Install New Software”,弹出图2-15所示界面。

图2-14 Eclipse中安装新插件菜单界面

第二步,在“Work with”输入框中输入“http://www.pydev.org/updates”,回车,这将把最新版的PyDev安装到Eclipse中, 勾选图2-15中红色矩形中的选项,单击“Next”按钮,进入下一步,会出现许可说明(License)界面,我们选择接受许可就可以了,然后Eclipse会自动下载PyDev插件并安装完毕。

图2-15 Eclipse中安装新插件界面

最后会出现一个是否选择重启Eclipse的对话框,为了使PyDev起作用,我们选择重启Eclipse。

为了检验安装是否成功,我们可选择Eclipse菜单“Window”→“preferences”查看“PyDev”项是否出现,若出现,则证明PyDev已经正确安装完毕,见图2-16。

图2-16 在Eclipse中查看PyDev是否安装

至此,我们已经成功地在Eclipse中安装了PyDev插件。在正常使用它之前,需要在Eclipse中对PyDev进行一些必要的配置,这将在下节中讲解。

当安装PyDev后,Eclipse窗口中会增添一种PyDev透视图(perspective)。透视图其实就是一种界面布局,不同的透视图包含不同的窗口(view),每个窗口包含菜单栏、工具栏、快捷方式栏等,以方便Python语言的编写、调试和运行。开发人员可以根据个人编程习惯定制透视图的外观和功能。

Eclipse中有各种透视图,可通过它的菜单“Window”→“Perspective”→“Open Perspective”→“Other...”查看并打开某一个透视图,见图2-17。

图2-17 Eclipse中的PyDev透视图

2.3.2 PyDev的配置

PyDev的配置比较简便,下面做简要介绍。

单击Eclipse菜单“Window”→“preferences”→“PyDev”→“Interpreters”进入Python解释器的配置界面。单击“Python Interpreter”,进入图2-18所示界面。

图2-18 Eclipse中的PyDev配置界面

在整个PyDev的配置中,较重要的是“Python Interpreter”的配置,其他配置都可以使用默认设置。可以通过单击配置界面中的“New...”按钮进行手动配置,也可以单击“Quick Auto-Config”按钮来尝试自动配置。图2-19所示是手动配置界面。

图2-19 Python Interpreters手动配置界面

在图2-19中,在“Interpreter Name”文本框中输入一个名字,作为本解释器的名称,如Python365;然后单击“Interpreter Executable”文本框右侧的“Browse...”按钮,选择已安装好的Python.exe的位置,例如图2-19中显示的Python.exe的安装位置为:E:\DevSys\python\python.exe。

建议初学者通过单击“Quick Auto-Config”按钮进行自动配置。

最后PyDev配置结果如图2-20所示。

图2-20 PyDev配置结果

PyDev的配置完成后,可双击PyDev配置页面中“Name”标签下的“Python”,修改默认解释器的名称,这里我们将名称修改为Python365。

无论是手动配置还是自动配置,PyDev会自动填充“Packages”“Libraries”“Forced Builtins”等栏目中的信息,我们无需干预。

最后单击“Apply”按钮,使这些配置生效;再单击“OK”按钮,退出PyDev的配置界面。

2.3.3 PyDev创建工程

PyDev的使用是基于Eclipse这个宿主环境的,关于Eclipse的使用,这里不再赘述,读者可自行查阅资料。下面通过一个实例说明如何使用PyDev插件。

首先创建一个PyDev Project(PyDev工程),这个工程是个容器,用来容纳开发者编写的各个Python模块(Python源代码程序)。

单击菜单“File”→“New”→“Other...”,打开工程向导界面,见图2-21。

图2-21 PyDev工程向导界面

在工程向导界面中选择“PyDev”→“PyDev Project”,创建新的PyDev工程,见图2-22。

图2-22 创建新的PyDev工程

这里我们将工程名称(Project name)设为Demo01,工程中的文件放在E:\Develop\MyPython目录(Directory)下。其他选项可以保留默认设置,暂时无需修改。

单击“Next”或“Finish”按钮,完成Demo01工程的创建。此时Demo01只是一个空白工程,里面还没有任何Python代码文件,其界面如图2-23所示。

图2-23 PyDev下的Demo01工程界面

现在我们在空白工程Demo01中创建一个Python源代码文件,这个源代码文件以.py为扩展名,可以被Python解释器翻译运行。

在图2-23中,右键单击工程名称“Demo01”,在弹出菜单中选择“New”→“File”,弹出创建新文件(New File)界面,如图2-24所示。

图2-24 创建新文件界面

在图2-24中,单击选择Demo01文件夹的子文件夹src,这时上方的文本框里会出现 “Demo01/src”,表示创建的这个源代码文件的存放位置,然后给这个文件起个名称,在“File Name”文本框中输入,例如起名为“test01.py”,最后单击“Finish”按钮,就完成了我们第一个Python源代码文件的创建,此时会出现图2-25所示的程序编辑界面。作为最简单的示例,在程序编辑区输入程序代码:print(“Hello, World!”),然后单击上方红圈内的运行按钮,运行这个程序。

图2-25 程序编辑界面

程序的运行结果会在下方的“Console”窗口中显示出来:

Hello, World!

提 醒

通过程序编辑区编写的源程序文件,编码格式默认继承自Eclipse环境的设置。几乎所有源程序文件的编码格式都为utf-8,所以最好将Eclipse环境下的文件编码格式设置为UTF-8,方法为:选择Eclipse菜单“Window”→“Preferences”,弹出图2-26所示界面,选择“General”目录项下的“Workspace”子项,查看右边的“Text file encoding”编码设置,选择UTF-8即可。

图2-26 Eclipse的Preferences界面

如果仅对当前工程设定一种编码格式,可以在左侧“PyDev Package Explorer”栏目中,右键单击工程名称,在弹出菜单中选择“Properties”,出现图2-27所示界面,选择“Resource”项,可看到当前工程文件编码设置,选择一种编码格式即可。

图2-27 PyDev工程的存储编码设置界面

2.3.4 PyDev调试代码

从循序渐进的角度看,现在讲述Python代码的调试似乎有点过早。但是考虑到PyDev创建工程、编写代码、调试代码是一个完整的流程,所以简单介绍一下PyDev代码调试,读者也可先略过本节,等学习了后面的章节,进行独立编程的时候再阅读。

由于PyDev是Eclipse的一个插件,所以如果熟悉Eclipse,会发现使用PyDev调试Python代码的方式与其他语言的代码调试基本一致,学起来相当方便。

设置断点往往是调试需要做的第一件事情。什么是断点?断点就是为了调试方便,在某行代码处设置一个信号,当程序执行到此处时,就会暂时挂起,并通知开发人员进行处理,这样开发人员就可以及时查看当前各个变量值,了解程序执行情况,以便判断代码的对错。也就是说,设置断点是调试的一种手段,是在程序运行过程中人为设定的临时中断。

以图2-28所示example.py程序代码为例,我们在第8行(if语句行)添加断点。

图2-28 example.py程序代码

首先把光标移动到第8行,然后任选下面一种方法添加断点:

① 双击光标所在行的左侧竖栏;

② 通过Ctrl+F10键,在弹出的上下文菜单中选择“Add Breakpoint”;

③ 右键单击光标所在行左侧竖栏,在弹出的上下文菜单中选择“Add Breakpoint”;

④ 通过Ctrl+Shift+B键进行断点设置(采用这种方法,需要先设置一下:右键单击图2-28右上角箭头所指图标,在弹出菜单的“Action Set Availability”选项板里选中“Breakpoints”)。

设置好的断点如图2-29所示。

图2-29 在Python代码文件中设置的断点

取消断点的方法和上面添加操作一样。

接下来调试程序。可通过Shift+F9键进入调试程序流程;也可右键单击代码区,弹出上下文菜单,选择“Debug As”菜单项,进入调试流程,见图2-30红圈部分。

图2-30 Python代码调试菜单

如果弹出一个对话框,询问是否切换到调试器透视图,单击 “Yes”即可。进入调试流程后,程序开始执行,遇到第一个断点后停止运行,并醒目显示出断点所在行,见图2-31。

图2-31 Python代码调试界面

调试过程中,当鼠标移动到某个变量上时,会显示变量当前信息,如上图中变量f2的当前值为4。

在调试模式中,使用快捷键可提高效率。常用的快捷键见表2-1。

表2-1 调试常用的快捷键

如果想通过表达式检查一下某些变量的当前运行状态,可以再添加一个观察视图(Watch),方法为:右键单击代码区,在弹出的上下文菜单中选“Watch”菜单项,就会出现观察视图,见图2-32。

图2-32 Python代码调试的观察视图

单击“Add new expression”,可任意添加自己需要的表达式,回车后会直接执行表达式运算。

若想使一个断点成为“条件化断点”(即只有在满足某个条件时,程序运行到断点位置才会停止运行),可把光标移到断点所在行,通过Ctrl+F10键调出上下文菜单(也可通过右键单击断点调出),见图2-33;然后选择“Breakpoint Properties”菜单项,出现图2-34所示条件化断点设置窗口。

图2-33 Python代码调试的条件化断点设置菜单

在图2-34中勾选“Enable Condition”,然后添加你想设置的条件,例如本例添加的条件为f1>4。完成后单击“OK”按钮,再重新运行程序,此时这个断点只有在f1>4时才能被触发,否则程序不中断,继续运行下去。

图2-34 Python代码调试的条件化断点设置窗口

在实际应用开发中,我们会用到Python包(Package)、模块(Model)等资源,Python工程会把这些资源和包整合到一起,形成一个能够实现完整业务功能的系统,我们将在后续章节深入讲解。