Anaconda用来管理Python的包和环境。Anaconda便于安装数据科学工作中常用的软件包。你还可以使用它来创建虚拟环境,当你在进行多个项目的时候可以少走很多弯路。Anaconda可以简化我们的工作,解决大量包管理和Python多版本的问题。
Anaconda包含了conda、Python和其它大约150个软件包和它们所依赖的软件。Anaconda的包体很大(大约500MB),因为它包含了大多数据科学相关的Python软件包。如果你不需要所有的软件包或者想要节省流量和存储空间,可以使用一个叫Miniconda的程序,它只包含了canda和Python,你可以通过canda安装所有可用的软件包。
也许你已经安装了Python,或者在想为什么还需要Conda。首先,Anaconda包含了大量的数据科学软件包,你可以直接开始进行数据处理工作;其次,使用conda来管理你的软件包和环境可以避免将来遇到由不同工具库版本引起的问题。
软件包管理
软件包管理通常用于在你的电脑上安装类库和其它软件。你可能对pip比较熟悉,它是Python默认的类库管理工具。Conda和pip很相似,但它所包含的软件包主要围绕于数据科学方面,而pip则更通用一些。可是conda并不像pip那样只用于Python,它还能够安装非Python的软件包。他是一个适用于任何软件栈的包管理工具。也就是说,并不是所有的Python库都能够通过Anaconda和conda安装。你仍需要使用pip和conda来安装相关的软件。
环境
除了软件包管理,Conda还是一个虚拟环境管理工具。就像virtualenv和pyenv,或者其他流行的环境管理工具。
多环境允许在你进行多个项目的时候,将软件包独立隔绝。有时你在工作中需要依赖类库的不同版本。比如,可能你有代码需要使用Numpy的新特性,又或者使用那些已经移除了的旧特性。但同时安装两个Numpy版本不太现实。所以,你需要为不同的项目搭建不同的环境来安装不同的Numpy版本。
使用Python2 和 Python3中时经常会遇到这些问题。你的旧代码不能运行在Python3中,新代码不能运行在Python2中。同时安装这两个版本会造成大量的困扰和bugs。所以最好把环境分离。
你能够将一个环境的软件包导出到一个文件中,然后在你的代码中引入。这也方便别人加载所有的依赖。Pip也有相似的功能pip freeze > requirements.txt。
下一步,我们会深入Anaconda的细节。首先会谈到Anaconda的安装,然后使用软件包管理工具,最后创建和管理多个环境。