大家好,基于Python的数据科学实践课程第二期又到来了,大家尽情学习吧。本期内容主要由春艳同学与政委联合推出。
上一节,我们主要介绍了如何界面化的使用Anaconda中的Navigtor(回顾戳这里)。本节将会带领大家进入更加真实的数据科学家工作环境。大家可以想象,当你要处理更大规模数据的时候,一般都是存储在服务器上的,那么你的交互只能与服务器进行对话,这种对话也就只能通过命令行完成了哦。所以,这节咱们就要学习conda的常用命令行来管理数据科学环境。
通过前面的介绍,相信大家已经对conda有了一个简单的认识。本节我们将对conda这一命令的使用进行一些基础说明,更加详细的使用方式可以参考Anaconda官网上的conda官方文档。
我们反复强调conda对环境和工具包的管理,那到底什么是环境,什么又是工具包呢?
conda环境是包含已安装的特定conda包集合的目录。例如,如果你同时在进行两个项目,一个项目要求你使用NumPy 1.7,另一个项目要求使用NumPy 1.6,那么你可以同时具有分别包含这两个包及其依赖项的环境。对其中一个环境的更改不会影响到其他环境,并且可以通过激活或停用的方式进行环境切换。除此之外,通过向他人提供environment.yaml文件副本的方式可以实现环境的多人共享。
conda包是一个压缩的打包文件,是一个有层次的文件目录结构,它定义了由n个模块或n个子包组成的Python应用程序执行环境。conda包含了系统级库、Python或其他模块、可执行程序和其他组件,它可以对包和平台之间的依赖关系进行跟踪。
前文也有提到,conda的设计理念在于将自己也作为package看待,因此conda可以对自己进行管理。conda对自己的管理主要体现在以下几个方面:
● 检验conda是否安装成功
● 查看conda安装版本
● 更新conda
在终端中输入以下命令来进行检验:
例1.1-4-1 检验conda是否安装成功
如果能够成功显示出目前conda的版本号,则表示成功安装。
图1.1-4-1 检验conda是否成功安装的运行结果截图
注:如果遇到找不到conda的错误提示,很可能是由于环境路径设置出现问题,需要添加conda环境变量。
例1.1-4-2 添加conda环境变量
除了例1.1-4-1的代码可以用来查看conda的版本之外,以下代码也可以做到:
例1.1-4-3 查看conda安装版本
注:在conda命令的使用中,可以将许多常用的命令选项从2个破折号( -- )加上命令的格式缩写为只有1个短划线和选项的第一个字母的形式。所以--version和-V相同,--name和-n相同,--envs和-e相同。
通过以下代码可以进行conda更新:
例1.1-4-4 更新conda
运行后conda会比较版本并报告可安装的内容,同时给出其他将随更新自动更新或更改的软件包。如果conda报告有更新版本可用,请键入y进行更新。
conda对环境管理的能力使我们可以创建、导出、删除和更新在其中安装了不同版本的Python或软件包的环境,并且允许我们在环境之间自由切换、共享环境文件。conda对环境的管理主要体现在以下方面:
● 创建环境
● 克隆环境
● 激活/停用环境
● 确定当前环境/查看环境列表/查看环境中的包列表
● 保存/共享/删除环境
当开始使用conda时,我们已经拥有一个名为base的默认环境(图1.1-4-1里有base提示)。但很多时候,我们都不希望将程序放入基础环境中,而是选择创建单独的环境使程序彼此隔离,同时保护基础环境不被破坏。
例1.1-4-5 创建环境
注:
● 默认情况下,环境安装在conda目录的envs目录中。
● 尽量同时在环境中安装所需的所有程序。一次安装1个程序可能会导致依赖性冲突。
● 如果想要每次创建新环境时都自动安装某些软件包,请将所需的软件包添加到.condarc配置文件的create_default_packages部分。
● 如果不希望在特定环境中安装默认的软件包,可以使用--no-default-packages标志。
例1.1-4-6 在特定环境中取消安装默认软件包
我们可以通过创建克隆环境来制作环境的精确副本:
例1.1-4-7 克隆环境
通过对环境的激活和停用,我们可以实现不同环境之间的切换。在激活一个环境之前,最好先停用目前正在运行的环境。
例1.1-4-8 激活/停用环境
3.4 确定当前环境/查看环境列表/查看环境中的包列表在Windows系统中,默认情况下活动环境(当前使用的环境)会显示在命令提示符开头的括号()或括号[]中(如图1.1-4-1所示)。除此之外可以通过以下方式进行查看:
例1.1-4-9 确定当前环境/查看环境列表/查看环境中的包列表
注:YAML文件中包含该环境的pip包和conda包,将该文件发送给其他人,他人通过例1.1-4-5中第9行代码可以创建同样的环境,从而实现环境的共享。
conda对包的管理主要体现在以下方面:
● 搜索/安装包
● 安装非conda包
● 查看已安装的软件包列表
● 更新包
● 删除包
与我们下载Anaconda时可能会遭遇到的问题一样,由于Anaconda.org的服务器在国外,因此如果我们直接进行包的下载和安装,很可能由于连接失败而收到错误提示,此时,清华TUNA镜像站又一次给我们带来了便利。
例1.1-4-10 添加Anaconda的清华TUNA镜像
添加好国内镜像地址后,我们可以更快地进行软件包的安装:
例1.1-4-11 搜索/安装包
如果无法从Anaconda.org或者清华TUNA镜像获得软件包,我们可以选择使用其他软件包管理器(如pip)查找并安装软件包。
值得注意的是,pip只是一个软件包管理器,所以无法对环境进行管理。pip甚至无法更新Python,因为它并不认为Python是一个包。pip和conda包之间的差异可能会导致兼容性方面的限制。如果要获得conda集成的好处,请确保在当前活动的conda环境中安装pip,然后使用该pip安装软件包。
例1.1-4-12 安装非conda包
通过以下方式我们可以查看不同环境下已安装的软件包列表:
例1.1-4-13 查看已安装的软件包列表
虽然Anaconda在下载时会为我们安装好多种不同的包,但各软件包的版本通常是较低的,因此为了避免在今后的使用过程中出现多种问题,建议在刚安装好就对所有的包进行更新。
例1.1-4-14 更新包
注:conda对Python的更新会将Python更新到该系列的最高版本,也就是说,如果是Python2则更新到2.x系列的最高版本,Python3则更新到3.x的最高版本。
可以通过如下操作对不同环境下的工具包进行删除:
例1.1-4-15 删除包
好了,今天常用的命令就介绍到这里。作业嘛?还用想,都尝试一遍命令行吧!