
2.1.1 Anaconda简介及安装
Anaconda是一个为科学计算、机器学习和大规模数据处理设计的开源Python发行版。其目前自带超过200个包,可使用此发行版直接调用。Anaconda中的conda可用来管理计算机内各种库的版本。作为Python程序开发者,我们可能都遇到过调用库之间版本不匹配的问题。举一个最直接的例子:假设你正在同时开发两个程序,其中一个程序需要使用Python 3.5,而另一个程序需要使用Python 3.7。两个程序只能分别在相应的Python版本下正常运行,而麻烦的是,Python自带的pip环境管理无法同时支持Python 3.5和Python 3.7。conda可以通过建立独立的编程环境解决这一问题。每个独立的conda environment可以拥有互不干扰的Python版本。利用conda这一功能,也可以在同一计算机内通过使用不同的conda environment来调用同一个库的不同版本。
下载个人版Anaconda只需进入官网子域https://www.anaconda.com/products/individual,下滑接近底端,会看到如图2.1所示的下载选项。
根据计算机系统和所需Python版本下载相应安装包。接下来将分别讲解Graphical Installer和Command Line Installer的安装过程。注意,以下皆为macOS图像界面,不同计算机系统的界面可能会有出入,但基本内容相同。
Graphical Installer会下载一个.pkg文件安装包,双击打开安装包将会看到图像界面指示,如图2.2所示。

图2.1 安装Anaconda

图2.2 打开Anaconda安装包界面
根据提示前进。到最后一步Summary(总结)中显示The installation was completed successfully(成功完成安装)后即可关闭界面,删除安装包,如图2.3所示。
在应用程序文档中将会看到一个名为Anaconda-Navigator的软件,如图2.4所示。
Command Line Installer会下载一个.sh文件。刚下载的文件无法直接执行,因此需要修改,先通过终端(terminal)改变这个文件权限。
输入chmod{file_path}+x,大括号内输入具有完整路径(full path)的文件名。执行这行代码可以打开文件的全部权限。
权限打开后,直接在终端输入具有完整路径的文件名,或输入cd,到文件所属文件夹后输入文件名,按下回车键——.sh文件可以通过这样的方式直接执行。会看到如图2.5所示的提示。

图2.3 完成Anaconda的安装

图2.4 Anaconda-Navigator图标

图2.5 命令行界面下载Anaconda
跟随提示,Command Line Installer将会指引之后的流程,我们只需要在提示出现时按回车键或输入yes即可完成安装。
Command Line Installer同样会将Anaconda-Navigator装入程序文档。打开这个软件会看到如图2.6所示的界面。

图2.6 Anaconda-Navigator起始界面
单击左栏中的Environments,在这里可以单击下栏的Create按钮创建新的独立编程环境,如图2.7所示。

图2.7 建立新的编程环境
系统自带的默认环境名为base(root),其中包含320个库。根据计算机本身下载过的库的数量不同,base环境中可能不是准确的320个库——不用为这个数量的不同而担忧。如图2.8所示,新创建的Environment只包含16个基础的库。

图2.8 新建环境所包含的基础库
并不是所有的库都可以直接在Anaconda-Navigator的图像界面下载,因此,为了在新创建的环境中加入所需要的库,我们需要了解如何使用命令行界面操控环境和库。为了方便不了解命令行界面的读者跟随操作,特此注解:以下“执行”都代表“输入以下代码并按回车键”。
打开一个新的终端,主机名字前会显示目前所处的环境,如图2.9所示,初始设定中,主机名字没有前缀,这意味着我们目前不处于一个conda环境里。

图2.9 终端未显示conda环境
执行:

将进入默认环境,也就是base environment。如图2.10所示,主机名字前出现了(base),标志着目前所处的环境。

图2.10 终端显示目前所处的conda环境
执行:

将会显示所有创建过的环境,如图2.11所示。

图2.11 列举所有环境
这里可以看到默认的base环境及刚刚使用图像界面创建的test环境。∗符号标记目前所处的环境。执行conda activate{environment_name},在大括号内输入想要切换到的环境名,即可切换所处环境。如果没有输入特定的环境名,系统将进入默认的base环境中,如图2.10所示。
如图2.12所示,执行:

完成后,主机名字前的(base)变成了(test)。再次执行:

∗标记在了test环境那一行。
命令行界面也可用于创建新的环境。接下来将尝试通过命令行重新创建test environment。

图2.12 成功切换环境
如果尝试在环境内删除环境,将会收到执行错误:

因此需要先执行:

退出所处的test环境。执行conda remove -n{environment_name} --all,在大括号内输入想要删除的环境名,即可删除该环境。命令行界面会提示将被删除的所有库,如图2.13所示。

图2.13 删除test环境
在提示:

时输入y即可完全删除。再次执行:

环境列表中将不再显示test环境,如图2.14所示。

图2.14 删除test环境后的环境列表
这时如果重新打开Anaconda-Navigator进入Environments,test环境也不再会出现在列表中。
执行conda create -n{environment_name},在大括号内输入想要创建的环境名,提示:

时输入y即可创建新的环境。这时再次执行:

应该看到图2.11所示的列表。执行:

将切换到刚刚用命令行界面创建的test环境。
简单熟悉命令行后,我们来使用命令行在新建的test环境中下载Jupyter Notebook、Pandas、scikit-learn、XGBoost、LightGBM、CatBoost和TensorFlow。