2.3 打造更舒适的开发环境
前面已经介绍了如何安装TensorFlow开发的基本环境,但如果就这样进行开发,会有很多不便之处,尤其是对于需要进行大量开发和研究的人,夸张一点来说,这样的环境无异于刀耕火种。本节我们就看看如何来通过安装一些工具和修改一些设置来改善开发环境。本书中基于Windows 7操作系统的界面做讲解,Windows 8和Windows 10操作系统中的界面也大同小异。另外,注意本书中介绍的工具和所有代码一般均可以到人邮教育社区(www.ryjiaoyu.com)下载对应的压缩包来获取。
2.3.1 修改Windows资源管理器的一些显示设置
在Windows操作系统下我们单击任何一个文件夹,打开的其实都是Windows资源管理器的界面,我们需要做一些设置,让它更符合开发的习惯。
首先如图2.22所示,单击资源管理器左上方的“组织”下拉按钮,选择“文件夹和搜索选项”命令。
图2.22 Windows文件夹选项菜单
在如图2.23所示的界面中,切换到“查看”选项卡,将其中的“隐藏已知文件类型的扩展名”前的复选框设置成不选中。
图2.23 修改Windows文件夹显示选项
这样我们就能清楚地看到一些文件的扩展名,例如Python文件test.py文件名后面的“.py”部分。
2.3.2 命令提示符CMD的替代方案
Mac OS X和Linux操作系统中,都有很好的命令行终端,但在Windows操作系统下提供的CMD,一直以来就不是一款很好的命令行终端软件,主要的问题有几个。
• 复制、粘贴操作极为不便。
• 对UTF-8编码的文字显示支持得不好(实际上对非ANSI字符集的字符显示都不好)。
• 字体等样式设置选择余地非常少。
• 不支持标签页式的同时开启多个终端的方式。
因此,我们强烈推荐用Cmder等软件来替代CMD。Cmder软件安装包可以到Cmder官网上下载(见图2.24)。
图2.24 Cmder官网下载页面
注意,Cmder官网上提供两种版本供下载,一种是Mini版本,即精简版;另一种是Full版本,即完全版。我们推荐下载完全版,因为完全版里面附带了很多Linux操作系统中比较有用的命令的Windows移植版本,所以建议单击“Download Full”链接按钮来下载完全版。
下载的文件是一个以.zip或.7z为扩展名的压缩文件,我们把它解压缩后,放到一个常用的文件夹下,例如图2.25中,我们把Cmder解压缩后放在了C盘的tools文件夹下。然后,我们就可以双击Cmder.exe可执行程序来启动Cmder了。
图2.25 Cmder安装包解压后文件夹内容
启动Cmder后,可以看到如图2.26一样,已经有一个半透明的Cmder界面出现了。我们可以在任务栏中用鼠标右键单击Cmder的图标,选择“将此程序锁定到任务栏”命令,这样以后就可以在任务栏中直接单击它的图标来启动了。
图2.26 Cmder界面
在Cmder界面中,我们可以单击窗口左上方的小图标,在出现的菜单中选择“Settings”命令来进行字体、编码等各种设置。也可以和其他一般的程序中一样用Ctrl+C组合键来进行选择文本的复制,用Ctrl+V组合键来进行粘贴操作了,而这在CMD界面中是不行的。另外,还可以在菜单中选择“New Console”命令来在标签页中打开一个新的Cmder窗口,非常方便。同时,我们还可以使用一些Linux的常用命令,如“touch”等(见图2.27)。
图2.27 在Cmder界面中执行Linux命令
2.3.3 文本文件编辑器
我们编写Python程序,前面的例子中直接使用了Windows操作系统中的“记事本”,这是一款文本文件编辑软件。我们后面将介绍使用更适合编写Python程序的软件,但有时编写简单的程序或者对程序做少许修改时,也可以用文本编辑软件来做。另外,我们也会经常用到文本文件来存储神经网络的训练数据。这时候,拥有一款功能完善的文本编辑软件会大大提高工作效率,而“记事本”的功能就显得过于薄弱了。所以我们建议使用一些专业的文本编辑软件来替代“记事本”,例如在Windows操作系统上,我们推荐一款简单易用的免费软件Notepad2-mod;在Mac OS X操作系统上,推荐使用Mac应用商店中的免费软件TextWrangler,这是一款强大的文本编辑软件BBEdit的免费版本,但功能已经足够,甚至超越了很多专业的收费软件;在Linux操作系统上,推荐直接使用Vim或GVim编辑器。下面以Windows操作系统下的Notepad2-mod为例介绍为什么要使用专业的文本编辑软件来替代该操作系统自带的编辑器。
我们可以去Notepad2mod官网下载它的最新版本,如图2.28所示。
直接在官网首页右侧找到下载安装包的链接(“Download Installer”字样),单击即可下载。如果遇到无法下载的情况,还可以到人邮教育社区(www.ryjiaoyu.com)下载本书对应的压缩包。下载后,如果是.zip后缀的压缩包,则需要先解压缩,然后运行安装包。在图2.29这个安装选项界面中,建议按截图所示选择,其中最后一个选项是选择是否用Notepad2-mod替代Windows的记事本,可以根据自己的需要决定是否勾选。选择好选项后,单击“Install”按钮即可一路完成安装。
图2.28 Notepad2-mod官网
图2.29 Notepad2-mod安装选项界面
安装完毕后,我们单击桌面上的Notepad2-mod图标或者从“开始”菜单中找到Notepad2-mod软件单击运行后,就可以看到类似“记事本”的文本编辑窗口,尝试在其中输入下面这行代码。
print(18 + 19)
输入后,应该得到图2.30中的界面。
图2.30 Notepad2-mod中的输入程序
我们可以看到软件下方的状态栏中间有一栏显示“ANSI”的字样,这就是代表当前文本文件的编码。我们可以用鼠标双击这里,然后在弹出的对话框中选择“UTF-8”(见图2.31),这样就不用像“记事本”那样,每次保存时再选择编码了。
图2.31 在Notepad2-mod中修改文件编码
我们选择保存文件,例如保存到桌面上命名为test1.py,并像以前的例子那样在命令行界面中执行这个Python程序,只不过记得用Cmder界面代替Windows的CMD界面,得到如图2.32一样的结果。
图2.32 在Cmder中执行程序
刚才我们改变文件编码的方式,只能改变当时正在编辑的文件的编码,由于我们后面所有的Python程序和训练数据文本文件都要求是UTF-8格式,所以我们需要把Notepad2-mod默认的文件编码从ANSI改成UTF-8,这样就不用每一次都设置一下了。在Notepad2-mod的“File”菜单中,找到“Encoding”设置编码的子菜单,然后如图2.33所示,选择“Default”命令就可以选择默认的文本编码了,这里我们要选择“UTF-8”命令。
图2.33 Notepad2-mod修改默认文件编码菜单
为了方便,我们还可以在“View”菜单中把“Word Wrap”即自动折行的选项勾选上,然后在“Default Font”中选择好自己喜欢的默认字体,最后在“Settings”菜单中选择“Save Settings Now”命令把这些设置保存下来,以后就再也不用每次都设置这些选项了。
与“记事本”相比,Notepad2-mod这类专业的文本编辑软件有下面这些增强功能是在程序开发中比较实用的。
• 能够显示每一行文字的行号。
• 具备比较完善的自动折行功能。
• 支持方便地对文本的编码进行转换。
• 具备对Python语言(也包括其他语言)的语法高亮显示功能,就是能够用不同颜色区别程序中不同类型的文字、数字等。
• 支持使用正则表达式来进行高级的文本查找和替换,这一点在整理训练数据或者结果数据的时候是非常有用的。
• 具备比较完善的文本样式设置功能,如对字体、颜色的调整等。
2.3.4 Python语言专用的开发工具
Notepad2-mod这一类软件是轻量级的文本编辑软件。所谓轻量级,是指软件比较小、运行速度比较快,使用起来比较便捷。这种软件适合处理文本格式的训练数据,或者对Python程序文件(其实也是文本文件)做一些简单的修改。但对于经常性的开发和较大的程序来说,是不太够用的。我们做Python程序开发一般要使用专业的开发工具,这类专用于某个计算机语言的工具叫作集成开发环境(Integrated Development Environment,IDE),IDE最主要的功能是提供一个编写程序、调试程序的一站式开发环境。
Python语言的集成开发环境有很多,但综合来说,JetBrains公司提供的PyCharm无疑是其中的佼佼者,这也是我们推荐的开发工具。JetBrains公司最早是由于推出IntelliJ IDEA这款大受好评的Java语言开发工具而出名的,之后又推出一系列语言的开发工具,始终保持较高的水准,PyCharm也是其中之一。
PyCharm可以直接到JetBrains公司的官网下载。注意在图2.34的官网下载页面中,有两个版本:Professional版本和Community版本,Professional版本是收费的,Community版本是免费的,Community版本已经足够我们一般开发的需要,因此下载Community版本就可以了。
图2.34 PyCharm官网下载页面
下载安装时,注意图2.35中的设置要勾选上“Download and install JRE x86 by JetBrains”复选框,以确保在安装过程中装上PyCharm需要的Java运行环境。
图2.35 PyCharm安装时选择安装JRE
PyCharm安装完成后,运行时要在图2.36的界面中右下角的Configure下拉菜单中找到Settings进行一些基本设置。
图2.36 PyCharm软件初始界面
最主要的是要在设置页面左侧导航栏中找到并单击“Project Interpreter”一项,然后在右侧详细设置中的“Project Interpreter”下拉项中选择我们安装的Python 3.x的相应版本,如图2.37所示。
图2.37 PyCharm中选择Python解释器
这样就为我们以后编写的Python程序指定好了Python解释器的版本。
下面我们来尝试PyCharm的使用。在PyCharm的初始界面中选择“Create New Project”来创建一个开发工程项目(所谓的开发工程项目,可以简单理解成为了完成一个目标而编写的所有程序,而IDE会提供管理这些工程项目的功能),这个项目也会被保存到以后存放所有实例代码的位置。如图2.38所示,我们选择把这个项目建在C盘的ml文件夹下,项目的Python解释器选用已经安装的Python 3.6版本,单击“Create”按钮。
图2.38 PyCharm新建工程项目
创建项目后,就会切换到项目管理的页面,如图2.39所示。
图2.39 PyCharm项目管理界面
这里可以看到,界面左侧是一个导航栏,ml文件夹就是我们的项目文件以后要存放的位置。用右键单击ml文件夹,可以新建一个Python程序文件,如图2.40所示。
图2.40 在PyCharm中新建Python程序文件
我们也将其命名为test.py,如图2.41所示。“.py”可以不用输入,PyCharm会自动为文件加上后缀名。
新建文件后,在右侧的文件编辑框中就可以编辑文件内容了。我们可以如图2.41中一样输入print(16*21)这行代码,注意在输入括号的时候,会弹出提示框,这就是对编程很有用的代码提示功能,像这里就给出了print函数的参数应该怎么写的提示;而在编写print代码的过程中,随着我们的输入,PyCharm也会提示有哪些与输入有关的函数可以用。丰富、完善的代码提示功能也是我们选用专业开发工具的最主要原因之一。
图2.41 PyCharm中输入程序
保存该文件后,可以在Cmder界面中尝试运行该程序文件。注意,一般改变工作目录是使用“cd”命令,例如“cd\Users\abc”,路径前面类似“C:”这样的硬盘符号(简称盘符)可以不用输入,而且如果要改变所处的硬盘,需要直接使用“C:”这样的命令,直接用“cd C:\Users”这样的命令是无法从另一个硬盘切换到C盘上来的。由图2.42可以看到,一开始的工作目录在E盘,我们使用“c:”命令(注意盘符的大小写无所谓)先把工作目录切换到C盘,再用“cd\ml”命令把工作目录切换到C盘根目录下的ml子目录下,然后用“dir”命令可以查看我们刚才用PyCharm编写的test.py程序,用“python test.py”命令来执行程序,便得到了期待的计算结果。
图2.42 Python程序执行结果
至此,我们的开发环境就基本安装完毕了。熟悉编程开发者可以直接看下一章的内容;如果为不了解编程者,建议看看下一节,这样即使不学编程,也可以大致看懂本书中的代码内容,以便继续了解一些深度学习的思路。