1.5 如何在自己的设备上编写Python代码
为了理解并运行Python代码,你需要在自己的设备中安装Python开发环境。有些设备可能要求你下载一份文件,并通过这份文件来安装。另一些设备可能要求你使用一种基于文本的界面,也就是命令行(command line)界面来安装,如果你要在自己的设备上(而不是以联网的方式)编写Python代码,那么以后总是要用到这种界面。无论怎么安装,我们的目标都一样,就是要把版本等于或大于3.9[7]的Python安装好。安装好Python之后,我们就可以安装Jupyter Notebook与某款代码编辑器了[本书会告诉大家怎样安装Atom编辑器(https://atom.io)]。如果你只想在云端环境中编程,那么可以直接跳到下一节,去看那里的步骤。
1.5.1 了解如何使用命令行界面
如果打算在自己的设备上使用Python,那么需要学着使用命令行[有时也叫作终端(terminal)或命令提示符(command prompt)]界面,这是一种基于文本的界面,可以向计算机发出指令。能够用鼠标执行的操作原则上都能在命令行界面中执行,其中有些操作,用命令行执行起来尤为方便,例如,安装软件与程序库(特别是我们要在本书中使用的各种Python库)、备份和运行代码。初学命令行的人可能需要一段时间才能适应,但对于许多涉及编程的任务来说,命令行通常要比用鼠标更快。当然,如果有可能的话,笔者在讲解某个任务时,还是会把这两种方式的操作步骤都告诉大家,让你从中选择一种更适合于当前任务的方式。
首先,我们要打开一个命令行(有时又叫作终端)界面,并通过该界面创建一个文件夹,以便存放我们学习数据整理时所用的内容。如果你用的是Chromebook笔记本电脑,或者一台装有macOS或Linux操作系统的计算机,那么请在其中搜索terminal(终端/终端机),并打开这个名叫Terminal的应用程序,这样就能看到一个命令行界面了。如果计算机装的是Windows系统,那么搜索powershell,并打开名为Windows PowerShell的程序。
要在Chromebook上启用Linux,你需要进入Chrome OS的设置界面(点击Start菜单中的齿轮图标,或者在Launcher中搜索settings)。在左侧菜单的底部会有一个小的企鹅图标,写着“Linux(Beta)”,点击这个图标,并根据指示操作,就可以在Chromebook中使用Linux了。你必须重启计算机,才能使用Linux。
打开终端后,我们就该创建新的文件夹了!为了帮助大家迅速熟悉命令行界面,笔者简单地介绍几条有用的命令:
ls
这是“list”(列清单)的意思,也就是列出当前位置之下的所有文件与文件夹。我们在带有图形界面的文件管理器中,也可以查看某个位置之下的所有文件及文件夹,而这个命令,则相当于该操作的文字版本。
cd foldername
cd是“change directory”(改变目录)的意思,它会把当前的工作目录切换到foldername所表示的文件夹,当然,这个foldername应该是ls命令所能显示的某个有效文件夹。这条命令的效果相当于我们在图形界面之中,用鼠标双击当前位置之下的某个文件夹,以打开(或者说,进入)该文件夹。
cd../
这也是一种“change directory”命令,但由于我们的目标写的是../,因此,这会让当前的工作目录变为本目录的上级文件夹。
cd~/
这同样是一种“change directory”命令,把目标写成~/,意思是回到当前用户的“home”文件夹。
mkdir foldername
mkdir是“make directory”(制作目录)的意思,这条命令会建立一个名为foldername的文件夹。这条命令的效果相当于我们在图形界面中调出关联菜单(也叫上下文菜单,通常可以通过单击鼠标右键调出该菜单),然后在名为“New”的子菜单中选择“Folder”菜单项,等到表示新目录的图标出现之后,将其改名为foldername。
使用命令行界面时,几乎用不着键入文件或文件夹的全名,可以把这理解成是在搜索内容,只需要输入头几个字符(当然可能要把大小写给拼对),然后按Tab建,命令行界面就会尽可能把你没有输入的那一部分自动补全,这就好比你在搜索内容的时候,只需要输入想查的前几个字,系统就会自动展示出以这几个字开头的搜索结果。
例如,你当前所在的这个文件夹中有两个文件,一个叫作xls_parsing.py,另一个叫作xlsx_parsing.py(我们在第4章将会遇到这种情况)。如果你想通过Python命令执行其中某个文件,那么只需先输入python xl,然后按Tab键,系统就会根据当前目录中的文件,自动补一个s上去,把命令变成python xls。为什么它没有一次补充完整呢?因为它还不知道你要写的到底是哪个文件的名字,此时,你可以自己打一个x或_字符上去,然后再按Tab键,这次系统就能把剩下的内容补全了,现在,你可以按下回车键执行这条命令。
刚在设备上打开终端界面的时候,会处于当前账号的home文件夹之中。对于macOS、Windows与Linux等系统来说,这个位置通常指的是User文件夹,而不是你刚刚登录操作系统时看到的那个桌面。初学命令行界面的人可能有点儿不太适应,他们觉得进入命令行界面之后所看到的文件夹应该跟进入操作系统时看到的相同。没关系,我们可以输入下面这条命令:
然后按Enter或Return键,这样就可以把当前的工作目录切换到表示桌面的那个文件夹了。以后为了简单起见,笔者把这两个键统称为回车键。
如果你用的计算机是Chromebook笔记本,那么Python(以及我们需要用到的其他一些程序)只能在Linux files文件夹中运行,因此,你不能在这种情况下移动到桌面所在的文件夹,只能另开一个终端窗口并在那个窗口里面把目录切换到桌面。
进入表示桌面的目录之后,我们在终端窗口中输入下面这条命令,并按回车键:
你有没有看到桌面上出现了一个新的文件夹?如果看到了,那么恭喜,你已经通过命令行界面创建出了自己的第一个文件夹。如果没有,那么请仔细检查命令提示符左边的文字(这个命令提示符在Chromebook笔记本上显示为$,在macOS系统中显示为%,在Windows系统中显示为>)。你看看当前的工作目录是不是桌面,如果不是,那么先执行cd~/Desktop命令,然后再执行刚才那条命令。
不要在文件或文件夹的名称里使用空格!
虽然大多数操作系统都支持在文件或文件夹的名称中使用空格或标点,但笔者强烈建议你不要这么做。除了下划线(_)之外,最好不要让文件或文件夹的名字带空格或标点。第2章我们将会看到命令行与Python语言(以及其他许多编程语言)都会把空格与标点视为具有特殊意义的符号,因此,如果你想要照原样(也就是按照字面意思)使用这些字符,那么必须进行“转义”,把它的含义从命令行界面所理解的那种特殊字符转变成普通的空格或标点,而这通常要求我们把某个转义符号(例如,反斜杠\)加在该字符左侧。实际上,某些带有空格的名字可能根本就无法在命令行界面中正常使用。如果你输入:
那么可能会创建出两个文件夹,一个叫data,另一个叫wrangling。如果你通过鼠标在图形界面中创建了名为data wrangling的文件夹,那么要想在命令行界面中切换到该文件夹,你需要这么写才行:
虽然有办法能够做到,但这样带来的困扰要大于它的好处。因此,为了避免这种麻烦,我们应该养成习惯,在给文件、文件夹,以及稍后要讲到的Python变量起名时,不要使用空格或者下划线之外的标点符号。
现在我们已经熟悉了命令行界面的用法,接下来,我们将会看到怎样通过这种界面便捷地安装并测试Python开发环境。
1.5.2 安装Python、Jupyter Notebook与代码编辑器
为了让安装过程简单一些,我们打算采用一款名为Miniconda的软件发行管理器(software distribution manager),它能够自动安装Python与Jupyter Notebook。就算你自己不打算用notebook编程,还是可以安装Jupyter,因为你能够用它查看别人编写的代码,而且它不会在设备上占用太多空间。Miniconda除了能安装Python与Jupyter Notebook,还会自动安装一个名为conda的命令行工具,让你能够轻松地更新Python与Jupyter Notebook,确保它们总是处于最新的状态[8]。具体如何更新,请参见本书附录A。
即便你只想在notebook中编写Python程序,笔者也还是建议你安装代码编辑器。而且,就算你不准备用这种编辑器书写代码,它也依然是个相当有用的工具,可以查看、编辑,乃至创建你自己的数据文件,这种工具要比设备自带的一些文本编辑软件更高效。而且最重要的是代码编辑器具备语法高亮(syntax highlighting)功能,这是编辑器内置的语法检查能力,可以检查代码及数据的语法是否合乎规范。这听起来似乎并不算什么重要的特性,但实际上,它会让编程与调试的过程变得比原来顺利得多,也可靠得多,因为你能够很明显地看到编辑器标注的问题。因此,使用一个语法高亮功能很强大的编辑器,对Python编程乃至一般的数据整理工作来说,都是相当重要的。
笔者在这本书里采用Atom代码编辑器(https://atom.io),这是一款免费且开源的多平台编辑器。你要是愿意研究它的配置,可以发现很多方法来根据自己的需求自定义编程环境。笔者在这本书里面可能会提到某些字符或代码的颜色,这是针对Atom编辑器默认的“One Dark”主题而言的。当然大家也可以改用最适合自己的配置。
接下来的配置与安装过程要求你在30~60min时间内稳定地联网。另外,如果使用的是笔记本电脑,那么强烈建议你将设备插上电源。
1.5.2.1 Chromebook
为了在Chromebook上正确安装数据整理工具,我们首先要知道Chromebook里面的Chrome OS操作系统是32位还是64位。
要想确认这一点,我们可以打开Chrome OS的设置界面(点击Start菜单中的齿轮按钮,或在Launcher中搜索“settings”,就可以进入该界面),然后点击左下角的“About Chrome OS”。在窗口顶部,可以看到系统版本号后面写的是(32-bit)还是(64-bit),如图1-1所示。
图1-1:Chrome OS的版本详细信息
在继续安装之前,请记下这个信息。
安装Python与Jupyter Notebook。首先,要从https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links下载与Chrome OS版本相匹配的Linux安装文件。然后,打开Downloads文件夹,把这个后缀名是.sh的安装文件拖拽到Linux files文件夹中。
然后,打开一个终端窗口,运行ls命令,确认自己能够看到安装Miniconda所用的.sh文件。如果可以看到,那么运行下面这条命令(前面说过,你只需要输入文件名的前几个字母,然后按Tab键,系统就会自动把完整的名称补全):
根据终端窗口里所显示的指令操作(接受协议并留意有关conda init的提示语),然后关闭并重新打开终端窗口。接下来,你需要运行下面这条命令:
然后,再关闭并打开终端窗口,接下来,用如下这条命令安装Jupyter Notebook:
对接下来提示的问题都回答yes,现在最后一次关闭终端窗口,一切就绪。
安装Atom。为了在Chromebook上安装Atom,需要从https://atom.io下载.deb包,并把它保存(或将其移动)到Linux files文件夹里面。
打开一个终端窗口,并输入如下命令,以便通过终端安装软件:
按回车键[9]。等到屏幕上的文本不再滚动,你会重新看到命令提示符(也就是以$结尾的那段文本),这说明安装过程已结束。
除了通过终端安装,你还可以用鼠标双击Linux files文件夹里的.deb文件,然后选择关联菜单顶部的“Install with Linux”菜单项,接着点击“Install”与“OK”。你会看到屏幕底部有个进度条,等安装过程结束之后,会有通知提示。
无论采用哪种方式,安装完毕之后,你都会看到Launcher的“Linux apps”里面多了一个绿色的Atom图标。
1.5.2.2macOS
在macOS上安装Miniconda有两种方式,一种是通过终端安装.sh文件,另一种是下载并双击.pkg格式的安装包。
安装Python与Jupyter Notebook。首先访问这个含有Miniconda安装包的页面:https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links。如果你想通过终端安装,那么下载写有Python 3.9 bash字样的文件,这种文件的名字以.sh结尾。如果你想通过双击鼠标的方式安装,那么下载.pkg文件(下载过程中,操作系统可能会提示“This type of file can harm your computer”,选择“Keep”即可)。
无论想采用哪种方式安装,现在都请打开Downloads文件夹,把刚才下载的文件拖拽到桌面上。
如果要通过终端安装Miniconda,那么打开一个终端窗口,然后通过cd命令把工作目录切换到桌面:
接下来,执行ls命令,以确认安装Miniconda所需的.sh文件确实出现在了ls所显示的清单里面。如果没问题,那么运行下面这条命令(刚才说过,你只需要输入开头的几个字符,然后按Tab键,系统就会自动补全剩下的字符):
根据终端窗口给出的提示来操作:
• 阅读协议的时候可以用空格键向下滚动一整页,等到看见END字样,就说明你已经把这份协议看完了。现在按Return键。
• 然后输入yes,并按Return键,以表示接受这份协议。
• 按Return键以确认安装位置,然后在那个写有conda init提示语的地方输入yes,并按Return键。
最后,关闭终端窗口。
如果想通过双击鼠标的方式安装,那么双击刚才下载的.pkg文件,并按照给出的指示操作。
安装完Miniconda之后,需要打开一个终端窗口,并输入如下这条命令:
按Return键。接下来,关闭并重新打开终端窗口,然后输入如下命令(并按Return键执行),以安装Jupyter Notebook:
在提示的地方,输入yes。
安装Atom。访问https://atom.io网页,并单击黄颜色的Download按钮,下载安装包,以便在Mac计算机上安装Atom。
点击Download文件夹中的atom-mac.zip文件,然后把Atom应用程序(它旁边有个绿色图标)拖拽到Applications文件夹里面(这时会提示你输入密码)。
1.5.2.3 Windows 10+
为了在Windows 10以及版本更新的Windows系统上安装数据整理工具,首先需要知道这个Windows操作系统是32位的还是64位的。
为了确认这一点,请打开Start(开始)菜单,然后点击齿轮图标进入Settings(计算机设置)画面。在这个窗口里面,点击左侧菜单中的System(计算机和设备),然后点击About(计算机信息)。在写有Device specifications的地方,会看到System type(系统类型),它会告诉你这个系统是32位的还是64位的。Microsoft官方的操作步骤请参见FAQ(https://support.microsoft.com/en-us/windows/32-bit-and-64-bit-windows-frequently-asked-questions-c6ca9541-8dce-4d48-0415-94a3faa2e13d)。
把查出的结果记录下来,稍后的设置过程要用到它。
安装Python与Jupyter Notebook。首先,访问页面https://docs.conda.io/en/latest/miniconda.html#latest-miniconda-installer-links,下载与Python 3.9相对应的Miniconda安装包,注意选择跟系统相适应的版本(32位的系统下载32位的安装包,64位的系统下载64位的安装包)。把.exe文件下载下来之后,执行这个安装文件,并根据提示多次点击鼠标,安装过程中不用更改默认的选项(最后它会推荐你观看教程并注册“Anaconda Nucleus”,这两步可以跳过)。
安装好之后,应该就能在Start菜单的“Recently added”顶部看到两个新的条目了,一个是“Anaconda Prompt (miniconda3)”,另一个是“Anaconda Powershell Prompt (miniconda3)”,如图1-2所示。这两种程序都能用来学习本书的内容,但笔者建议你选择后者(也就是Powershell)作为学习本书时所使用的终端界面。
把Miniconda安装好之后,需要打开一个新的终端(也就是Powershell)窗口,并输入如下命令:
图1-2:Start菜单中的两种Anaconda
然后点击回车键,执行该命令。接下来,按照刚才执行时所看到的提示,关闭并重新打开终端窗口,输入下面这条命令(输入完之后要按回车键)以安装Jupyter Notebook:
对随后的提示回答yes(也就是输入字母y并按回车键)。
安装Atom。访问https://atom.io/,并点击黄色的“Download”的按钮,以便在运行Windows 10+操作系统的计算机上安装Atom。
点击已经下载的Atom-Setup-x64.exe文件[10],并等待安装完成。Atom会自动启动。如果弹出提示,问你要不要把Atom注册为处理atom://型URI的默认程序,你可以选择Yes(是)。
1.5.2.4 测试这些工具是否安装正确
为了确认Python与Jupyter Notebook能够正常运行,请打开一个终端窗口,并执行下面这条命令,以便进入我们在1.5.1节创建的data_wrangling文件夹:[11]
然后输入下面这条命令:
如果你看到类似这样的信息:
那说明Python已经顺利安装好了。
接下来,运行如下条命令测试Jupyter Notebook是否安装正确:
如果你看到系统里出现了类似图1-3所示的浏览器窗口[12],那么说明所有工具都准备到位了。
图1-3:在空白的文件夹里运行Jupyter Notebook时所看到的浏览器窗口