![人工智能开发语言:Python](https://wfqqreader-1252317822.image.myqcloud.com/cover/281/29974281/b_29974281.jpg)
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所示界面。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-14.jpg?sign=1739501818-atvrl31YfgP4aNch6lJNdmZ7y0l0u3Lt-0-fd94f34aac72c85f9100d10eb6aa3178)
图2-14 Eclipse中安装新插件菜单界面
第二步,在“Work with”输入框中输入“http://www.pydev.org/updates”,回车,这将把最新版的PyDev安装到Eclipse中, 勾选图2-15中红色矩形中的选项,单击“Next”按钮,进入下一步,会出现许可说明(License)界面,我们选择接受许可就可以了,然后Eclipse会自动下载PyDev插件并安装完毕。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-15.jpg?sign=1739501818-woLrqSAxdGZ9MoigKZFm6SFhGKCcTH0R-0-c51dcb368e5eff5e71c0eb7e6397d022)
图2-15 Eclipse中安装新插件界面
最后会出现一个是否选择重启Eclipse的对话框,为了使PyDev起作用,我们选择重启Eclipse。
为了检验安装是否成功,我们可选择Eclipse菜单“Window”→“preferences”查看“PyDev”项是否出现,若出现,则证明PyDev已经正确安装完毕,见图2-16。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-16.jpg?sign=1739501818-J5qLf5RdbuXN9yhdITIsMjwXAP40A31u-0-610f001732f3a3512281ac07f3ca1637)
图2-16 在Eclipse中查看PyDev是否安装
至此,我们已经成功地在Eclipse中安装了PyDev插件。在正常使用它之前,需要在Eclipse中对PyDev进行一些必要的配置,这将在下节中讲解。
当安装PyDev后,Eclipse窗口中会增添一种PyDev透视图(perspective)。透视图其实就是一种界面布局,不同的透视图包含不同的窗口(view),每个窗口包含菜单栏、工具栏、快捷方式栏等,以方便Python语言的编写、调试和运行。开发人员可以根据个人编程习惯定制透视图的外观和功能。
Eclipse中有各种透视图,可通过它的菜单“Window”→“Perspective”→“Open Perspective”→“Other...”查看并打开某一个透视图,见图2-17。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-17.jpg?sign=1739501818-Eacp2Io2Kz3gHWXBPF0HNSvs4Ex3r6kR-0-46de90ad67131ba52d93cb1ba07b2d34)
图2-17 Eclipse中的PyDev透视图
2.3.2 PyDev的配置
PyDev的配置比较简便,下面做简要介绍。
单击Eclipse菜单“Window”→“preferences”→“PyDev”→“Interpreters”进入Python解释器的配置界面。单击“Python Interpreter”,进入图2-18所示界面。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-18.jpg?sign=1739501818-SaEI9Jp5CJyxe5VEzx1P5Sv0Drbt7M8Y-0-690c6e704095e0e770cb016d04e0f7ed)
图2-18 Eclipse中的PyDev配置界面
在整个PyDev的配置中,较重要的是“Python Interpreter”的配置,其他配置都可以使用默认设置。可以通过单击配置界面中的“New...”按钮进行手动配置,也可以单击“Quick Auto-Config”按钮来尝试自动配置。图2-19所示是手动配置界面。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-19.jpg?sign=1739501818-dYymUAVnf0jBOVq0kAi27YX0j87YqqUp-0-1f7d4e490872bd02f5965dddfaefd1ef)
图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所示。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-20.jpg?sign=1739501818-UD6tspoLuoOuUtMMi9f1iVC57obNJgEt-0-68d8e27c5b085010b7bfbfb1864d2562)
图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。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-21.jpg?sign=1739501818-3RZh2qRRZLlPaovv39PHPgHjlu8rhitq-0-bf71a09222585c31cc8b0ac031861171)
图2-21 PyDev工程向导界面
在工程向导界面中选择“PyDev”→“PyDev Project”,创建新的PyDev工程,见图2-22。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-22.jpg?sign=1739501818-b3ol6kxny7Gkw2f1JTqI8pf4pbitr9hO-0-925f13893adab0cec933e63b3392164c)
图2-22 创建新的PyDev工程
这里我们将工程名称(Project name)设为Demo01,工程中的文件放在E:\Develop\MyPython目录(Directory)下。其他选项可以保留默认设置,暂时无需修改。
单击“Next”或“Finish”按钮,完成Demo01工程的创建。此时Demo01只是一个空白工程,里面还没有任何Python代码文件,其界面如图2-23所示。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-23.jpg?sign=1739501818-6yyfu9AtfJvBkEclOJAr6VueUU18OUua-0-eaa9fd65c504d0e1ab279fcd64d73098)
图2-23 PyDev下的Demo01工程界面
现在我们在空白工程Demo01中创建一个Python源代码文件,这个源代码文件以.py为扩展名,可以被Python解释器翻译运行。
在图2-23中,右键单击工程名称“Demo01”,在弹出菜单中选择“New”→“File”,弹出创建新文件(New File)界面,如图2-24所示。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-24.jpg?sign=1739501818-Aac906BpqlDKljSJrR77TizEFI0WgCnt-0-9500b6256a93d25666d033979c24be39)
图2-24 创建新文件界面
在图2-24中,单击选择Demo01文件夹的子文件夹src,这时上方的文本框里会出现 “Demo01/src”,表示创建的这个源代码文件的存放位置,然后给这个文件起个名称,在“File Name”文本框中输入,例如起名为“test01.py”,最后单击“Finish”按钮,就完成了我们第一个Python源代码文件的创建,此时会出现图2-25所示的程序编辑界面。作为最简单的示例,在程序编辑区输入程序代码:print(“Hello, World!”),然后单击上方红圈内的运行按钮,运行这个程序。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-25.jpg?sign=1739501818-3IDtn4dfCZkDtHrSfcIslAOYVJDS5VeL-0-a09f6beaf42dfcb92c8a56eae551a900)
图2-25 程序编辑界面
程序的运行结果会在下方的“Console”窗口中显示出来:
Hello, World!
提 醒
通过程序编辑区编写的源程序文件,编码格式默认继承自Eclipse环境的设置。几乎所有源程序文件的编码格式都为utf-8,所以最好将Eclipse环境下的文件编码格式设置为UTF-8,方法为:选择Eclipse菜单“Window”→“Preferences”,弹出图2-26所示界面,选择“General”目录项下的“Workspace”子项,查看右边的“Text file encoding”编码设置,选择UTF-8即可。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-26.jpg?sign=1739501818-m7zov9LzhlhpNXMrfqOcQuwyvOTp3CSQ-0-c805adab57a10270c8abd627af385833)
图2-26 Eclipse的Preferences界面
如果仅对当前工程设定一种编码格式,可以在左侧“PyDev Package Explorer”栏目中,右键单击工程名称,在弹出菜单中选择“Properties”,出现图2-27所示界面,选择“Resource”项,可看到当前工程文件编码设置,选择一种编码格式即可。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-27.jpg?sign=1739501818-obnrrNGVvPY5tXybJumeYJIDbjwULNK1-0-f4812b89f0751e31095b38a9609da1b7)
图2-27 PyDev工程的存储编码设置界面
2.3.4 PyDev调试代码
从循序渐进的角度看,现在讲述Python代码的调试似乎有点过早。但是考虑到PyDev创建工程、编写代码、调试代码是一个完整的流程,所以简单介绍一下PyDev代码调试,读者也可先略过本节,等学习了后面的章节,进行独立编程的时候再阅读。
由于PyDev是Eclipse的一个插件,所以如果熟悉Eclipse,会发现使用PyDev调试Python代码的方式与其他语言的代码调试基本一致,学起来相当方便。
设置断点往往是调试需要做的第一件事情。什么是断点?断点就是为了调试方便,在某行代码处设置一个信号,当程序执行到此处时,就会暂时挂起,并通知开发人员进行处理,这样开发人员就可以及时查看当前各个变量值,了解程序执行情况,以便判断代码的对错。也就是说,设置断点是调试的一种手段,是在程序运行过程中人为设定的临时中断。
以图2-28所示example.py程序代码为例,我们在第8行(if语句行)添加断点。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-28.jpg?sign=1739501818-9I4bD8mi561EIihK5bxaJUADqglJMZhj-0-ab883606f0091859f28d02b0bc549fb6)
图2-28 example.py程序代码
首先把光标移动到第8行,然后任选下面一种方法添加断点:
① 双击光标所在行的左侧竖栏;
② 通过Ctrl+F10键,在弹出的上下文菜单中选择“Add Breakpoint”;
③ 右键单击光标所在行左侧竖栏,在弹出的上下文菜单中选择“Add Breakpoint”;
④ 通过Ctrl+Shift+B键进行断点设置(采用这种方法,需要先设置一下:右键单击图2-28右上角箭头所指图标,在弹出菜单的“Action Set Availability”选项板里选中“Breakpoints”)。
设置好的断点如图2-29所示。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-29.jpg?sign=1739501818-PAE0i9ie6YIlHie5pZxZnj5RBdWpXSvH-0-ce947da19c32c4f310da834a0b471262)
图2-29 在Python代码文件中设置的断点
取消断点的方法和上面添加操作一样。
接下来调试程序。可通过Shift+F9键进入调试程序流程;也可右键单击代码区,弹出上下文菜单,选择“Debug As”菜单项,进入调试流程,见图2-30红圈部分。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-30.jpg?sign=1739501818-N13MwtTNvQX5y8S9gjjyLx7LARRyEr9r-0-bb5f80e31ebccbc4acc7a9b69a9a55b6)
图2-30 Python代码调试菜单
如果弹出一个对话框,询问是否切换到调试器透视图,单击 “Yes”即可。进入调试流程后,程序开始执行,遇到第一个断点后停止运行,并醒目显示出断点所在行,见图2-31。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-31.jpg?sign=1739501818-ovEGgV6Ceuo1S1fJhhrTM4wbetbx4uQa-0-181ccacc504d2dca383a42d94fe2ee35)
图2-31 Python代码调试界面
调试过程中,当鼠标移动到某个变量上时,会显示变量当前信息,如上图中变量f2的当前值为4。
在调试模式中,使用快捷键可提高效率。常用的快捷键见表2-1。
表2-1 调试常用的快捷键
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/49.jpg?sign=1739501818-8aHkPspamG9KnYNWUadqZ0rzB0aZMI4I-0-84cb5a0ac6dc6f053491976f5581e592)
如果想通过表达式检查一下某些变量的当前运行状态,可以再添加一个观察视图(Watch),方法为:右键单击代码区,在弹出的上下文菜单中选“Watch”菜单项,就会出现观察视图,见图2-32。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-32.jpg?sign=1739501818-v7YvaS8A9ttvLTw0AJiGuUzuMMlrPwKX-0-f0f82547d2a5c050b1e3209414e6c975)
图2-32 Python代码调试的观察视图
单击“Add new expression”,可任意添加自己需要的表达式,回车后会直接执行表达式运算。
若想使一个断点成为“条件化断点”(即只有在满足某个条件时,程序运行到断点位置才会停止运行),可把光标移到断点所在行,通过Ctrl+F10键调出上下文菜单(也可通过右键单击断点调出),见图2-33;然后选择“Breakpoint Properties”菜单项,出现图2-34所示条件化断点设置窗口。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-33.jpg?sign=1739501818-SG85rbzsT37Ot1RgB9QLIfrsfAQVaTHi-0-e7090d82fe55eeda46d9ac1c24441795)
图2-33 Python代码调试的条件化断点设置菜单
在图2-34中勾选“Enable Condition”,然后添加你想设置的条件,例如本例添加的条件为f1>4。完成后单击“OK”按钮,再重新运行程序,此时这个断点只有在f1>4时才能被触发,否则程序不中断,继续运行下去。
![](https://epubservercos.yuewen.com/B65D95/16499757104598206/epubprivate/OEBPS/Images/2-34.jpg?sign=1739501818-WyxJvfDzJGAPDgvoAk0L1kNEkHULGjBb-0-258a476ee7411c3cc2e4f7cf21f3b20c)
图2-34 Python代码调试的条件化断点设置窗口
在实际应用开发中,我们会用到Python包(Package)、模块(Model)等资源,Python工程会把这些资源和包整合到一起,形成一个能够实现完整业务功能的系统,我们将在后续章节深入讲解。