1.2 Python 3.6.4开发环境配置
Python在PC三大主流平台(Windows、Linux和OS X)都可使用。在这里只讲解Windows和Linux下的开发环境配置。Windows平台以Windows 7为例,Linux平台以Debian 8系统为例。Python目前主要有两个版本,Python 2和Python 3。
目前,Python 2的最终版本是Python 2.7.14,Python 3的最终版本是Python 3.6.4。虽然目前Python 2和Python 3的拥趸暂时棋逢对手,但相信Python 3才是未来的方向。所以本书的程序将以Python 3为主。
提示
在Windows系统中,如果同时安装了Python 2和Python 3,这两个程序的名字都是Python.exe,只能以安装目录来区分Python 2和Python 3了。Linux系统还好区分,可以通过程序名来区分。
1.2.1 Windows下安装Python
(1)打开Chrome浏览器,在地址栏输入Python官网地址www.python.org,如图1-1所示。
图1-1 Python官网
(2)单击Python 3.6.4,进入Python 3.6.4的下载页面,如图1-2所示。
(3)按照安装的Windows系统选择下载的安装文件。示例系统是Windows 7 64位,适合当前Windows版本的Python安装文件有3个,一个是绿色解压缩版本,一个是正常的安装版本,最后一个是网络安装版本。绿色安装版本需要自行添加环境变量。正常的安装版本安装更简单一些。所以这里下载的是Windows x86-64 executable installer。
图1-2 Python下载
(4)下载完毕,得到安装文件python-3.6.4-amd64.exe。以管理员身份运行安装程序,开始安装Python 3.6,如图1-3所示。
图1-3 安装Python
(5)单击Customize installation按钮,选择Python安装组件,将全部的组件都选上,如图1-4所示。
图1-4 选择Python组件
(6)单击Next按钮后,进入Python环境设置界面,如图1-5所示。
图1-5 Python安装环境
选择Add Python to environment variables,将Python加入系统环境变量中。选择Install for all users,允许所有用户使用Python。修改一个合适的安装目录。单击Install按钮开始安装Python,如图1-6所示。
图1-6 安装Python
(7)单击Close按钮,整个安装程序完毕。验证Python是否安装成功。单击桌面左下角的“开始”菜单,在地址栏输入cmd.exe后按Enter键,打开Windows系统命令行程序,如图1-7所示。
图1-7 打开系统命令行工具cmd.exe
(8)执行命令,验证Python,如图1-8所示。
图1-8 验证Python
由此可见Python已安装成功,并已将路径添加到环境变量。单击桌面左下角的“开始”|“所有程序”菜单,单击Python 3.6文件夹,就可以看到Python的菜单,如图1-9所示。
图1-9 Python 3.6菜单
提示
在安装Python的同时也安装了Python自带的IDE——IDLE和本地的模块说明文档。这个文档的说明很详细,一般只需要看这个文档就足够了。
至此Python 3已在Windows上安装验证成功,可以愉快地使用Python了。
1.2.2 Windows下安装配置pip
上文中说过,Python有几乎无限的第三方模块。如何安装这些第三方模块呢?这里就不得不说到easy_install和pip了。
easy_install和pip都是Python的模块安装工具,有点类似于Debian系统的apt-get、Fedora系统中的yum或者Windows系统中的QQ软件管理器,都是一键安装软件工具,所不同的是它们只负责安装Python模块。老版本中的Python只有easy_install。pip可以认为是easy_install的高级版本,所以pip和easy_install任选其一即可,建议使用pip。在安装Python时已经选择了pip组件(如图1-5所示),就无须再次安装pip了,直接开始配置即可。
因为pip的服务器安装源在国外,基于国内糟糕的网络环境,使用pip安装Python第三方模块将是一个很痛苦的过程。好在有变通的方法,在国内也有pip的镜像源,只需要在pip的配置文件中将pip的安装源指向国内的服务器,这个问题就解决了。
根据pip的指南,Windows中pip的配置文件是%HOME%/pip/pip.ini(具体到当前环境,本书使用的Windows当前用户是king,那么配置文件位置就是C:\Users\king\pip\pip.ini)。默认情况下pip文件夹和pip.ini文件都未被创建,需要自行创建。按照指南创建好文件夹和文件后,pip.ini文件内容如下:
[global] index-url = https://pypi.mirrors.ustc.edu.cn/simple #index-url = http://pypi.hustunique.com/simple #index.url = http://pypi.douban.com/simple
提示
这里一定是pip.ini文件,而不是pip.ini.txt。在Windows中显示文件后缀名,确认配置文件的文件名。
修改后的结果如图1-10所示。
图1-10 修改pip.ini
图1-10中准备了3个pip源,任选其一即可。选择的方法就是在不需要的源地址前面加上#符号。下面来验证一下修改源地址是否成功,执行命令:
python –m pip install –-upgrade pip
此命令的作用是更新pip源,结果如图1-11所示。
图1-11 更新pip源
可以看出,配置文件中的新源已经起作用了。测试一下pip。单击桌面左下角的“开始”菜单,在地址栏中输入cmd.exe后按Enter键,打开Windows系统命令行程序。执行命令,如图1-12所示。
图1-12 测试pip
至此pip已完全配置完毕。
1.2.3 Linux下安装Python
连接到虚拟机pyDebian上。连接工具当然是Putty了(ssh远程连接工具有很多,这里只是选了个顺手的,使用其他的工具连接并不影响结果)。下面,先用Putty连接这个Linux机器。
(1)双击Putty图标,打开Putty.exe,填入IP地址和端口信息,如图1-13所示。
图1-13 Putty连接设置
(2)单击Open按钮,第一次使用Putty登录Linux会有一个安全警告提示,如图1-14所示。
图1-14 Putty安全警告
(3)单击“是(Y)”按钮,进入Linux的登录界面(用户名和密码就使用默认的king:qwe123),如图1-15所示。
图1-15 登录Linux
(4)输入用户名和用户密码后(用户密码不回显),登录到Linux。
Debian Linux默认安装了Python 2和Python 3(几乎所有的Linux发行版本都默认安装了Python)。Python命令默认指向Python 2.7,验证一下Python的路径,执行命令:
whereis python ls –l /usr/bin/python ls –l /usr/bin/python3
执行的结果如图1-16所示。
图1-16 查看Python路径
再来看看Python的版本信息,执行命令:
python2 –V python3 -V
执行的结果如图1-17所示。
图1-17 Python版本信息
从图1-17中可以看出,Linux上安装的Python版本与官网上的最新版本(Python 3.6.4)是不同的。这是正常现象,一般来说Debian Linux会使用软件的最稳定版本,而Ubuntu Linux会使用软件的最新版本。
1.2.4 Linux下安装配置pip
如同Windows中的Python一样,Linux中的Python同样需要一个模块安装的管理工具,既可以是easy_install,也可以是pip。遗憾的是多数Linux版本并没有默认安装这个管理工具(Debian可以使用apt-get安装大部分的Python第三方模块,只有极少数的模块不能使用apt-get安装),所以得自己安装。
从Debian Linux中安装pip,执行命令:
su – apt-get install python3-pip
执行结果如图1-18所示。
图1-18 安装pip
输入su -命令后再输入系统root用户的登录密码。该命令的作用是使用root用户登录系统,并使用root用户的环境变量。apt-get install Python 3-pip的作用是使用apt-get命令安装Python 3-pip这个工具包。最后输入y确认执行命令,开始安装python-pip。
提示
Linux下安装软件都必须有root权限,可以直接转换成root用户安装,也可以在sudoers里添加特权用户和权限。
安装Python 3-pip后,退出root用户环境,查看pip3版本,如图1-19所示。
图1-19 验证pip
最后还要将pip3的更新源改成国内源。根据pip的指南,在Linux下pip的配置文件是$HOME/.pip/pip.conf,执行命令:
su – cd pwd mkdir .pip cd .pip cat > pip.conf << EOF [global] index-url = https://pypi.mirrors.ustc.edu.cn/simple #index-url = http://pypi.hustunique.com/simple #index-url = http://pypi.douban.com/simple EOF cat pip.conf exit
执行结果如图1-20所示。
图1-20 修改pip.conf
提示
一般Windows中的配置文件后缀名为ini,Linux中相应文件的后缀名为conf。
一般用户和root用户都可以使用pip安装模块,这里只修改了root用户目录下的配置文件,也就是说只有root用户在使用pip命令时才会使用国内的pip源。而一般用户并没有修改pip的配置文件,使用的还是pip默认源。
验证一下修改源地址是否成功,执行命令:
su - python3 –m pip install –-upgrade pip exit
结果如图1-21所示。
图1-21 更新pip源
从图1-21可以看出pip源已经开始起作用了。下下下下面来测试一下pip,如图1-22所示。
图1-22 测试pip
到此pip已完全配置完毕。和Windows下的pip不同,Linux下的pip可以使用root安装模块,也可以使用一般用户来安装模块。推荐使用root用户来安装,因为有些模块安装需要root特权,root安装的模块一般用户都可以使用。
1.2.5 永远的hello world
图1-23 打开IDLE
似乎所有的编程语言第一个程序都是hello world。Python也不能免俗,下面分别从Windows和Linux下创建hello.py。
1. Windows下创建hello.py
(1)单击桌面左下角的“开始”|“所有程序”菜单,单击Python 3.6菜单,单击IDLE (Python GUI)菜单,如图1-23所示。
(2)此时打开的是Python Shell交互界面,再单击File|New File菜单,如图1-24所示。
图1-24 打开IDE
(3)用IDLE的IDE打开一个新文件,在此新文件中编辑hello.py,如图1-25所示。
图1-25 编辑hello.py
(4)单击该IDE的File|Save As …菜单,将已编辑好的代码保存,如图1-26所示。
图1-26 保存代码
(5)选择保存文件位置。这里选择的是保存到桌面,文件名为hello.py,如图1-27所示。
图1-27 选择文件保存位置
(6)单击“保存”按钮,将hello.py保存到桌面。按住Shift键,同时右击桌面空白处,如图1-28所示。
图1-28 打开Windows命令行工具
(7)单击“在此处打开命令窗口”,打开了命令行工具,执行命令:
python hello.py
执行结果如图1-29所示。
图1-29 执行hello.py
提示
程序的第一行指定Python解释器的位置。在Windows中这一行并没有什么意义,留下这一行是为了兼容Linux。第二行是指定Python程序编码,在Python 3中默认的字符编码就是utf-8,因此这一行也没多大意义,是为了兼容Python 2而保留的。
至此,Windows下的hello.py执行完毕。
2. Linux下创建hello.py
(1)使用Putty连接到Linux,执行命令:
mkdir –pv code/python cd !$ cat > hello.py << EOF #!/usr/bin/env python3 #-*- coding: utf-8 -*- __authon__ = 'hstking hst_king@hotmail.com' if __name__ == '__main__': print("hello world!") print("你好,Python!") EOF
执行结果如图1-30所示。
图1-30 编辑hello.py
(2)然后在Putty中执行命令:
python hello.py
执行结果如图1-31所示。
图1-31 执行hello.py
提示
这是没有使用文本编辑工具编辑文档,用的是cat命令。如果有条件,尽可能地使用文本编辑器,如vi。几乎所有的Linux版本都默认安装了vi文本编辑器。
提示
因为在Windows中只安装了一个Python 3,而在Linux中默认安装了Python 2和Python 3。所以在Windows中运行Python 3的程序只需要执行命令Python program.py就可以了。而在Linux中运行Python 3的程序则需要指明解释器的版本Python 3,因此命令应该为Python 3 program.py。
Linux下的hello.py执行完毕。在Python程序中有中文字符时需要注意,这里的例子能正常显示是因为当前系统默认支持utf-8字符集。如果系统不支持utf-8,就需要将中文字符用encode转换成系统可识别的字符集。