Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,能够很方便地解决多版本python并存、切换以及各类第三方包安装问题。Anaconda利用工具/命令conda
来进行package和environment的管理,而且已经包含了Python和相关的配套工具。python
这里先解释下conda、anaconda这些概念的差异。conda
能够理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用相似,环境管理则容许用户方便地安装不一样版本的python并能够快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,因此也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。bash
进入下文以前,说明一下conda的设计理念——conda将几乎全部的工具、第三方包都当作package对待,甚至包括python和conda自身!所以,conda打破了包管理与环境管理的约束,能很是方便地安装各类版本python、各类package并方便地切换。服务器
Anaconda的下载页参见官网下载,Linux、Mac、Windows均支持。工具
安装时,会发现有两个不一样版本的Anaconda,分别对应Python 2.7和Python 3.5,两个版本其实除了这点区别外其余都同样。后面咱们会看到,安装哪一个版本并不本质,由于经过环境管理,咱们能够很方便地切换运行时的Python版本。(因为我经常使用的Python是2.7和3.4,所以倾向于直接安装Python 2.7对应的Anaconda)ui
下载后直接按照说明安装便可。这里想提醒一点:尽可能按照Anaconda默认的行为安装——不使用root权限,仅为我的安装,安装目录设置在我的主目录下(Windows就无所谓了)。这样的好处是,同一台机器上的不一样用户彻底能够安装、配置本身的Anaconda,不会互相影响。url
对于Mac、Linux系统,Anaconda安装好后,实际上就是在主目录下多了个文件夹(~/anaconda
)而已,Windows会写入注册表。安装时,安装程序会把bin目录加入PATH(Linux/Mac写入~/.bashrc
,Windows添加到系统变量PATH),这些操做也彻底能够本身完成。以Linux/Mac为例,安装完成后设置PATH的操做是spa
# 将anaconda的bin目录加入PATH,根据版本不一样,也多是~/anaconda3/bin echo 'export PATH="~/anaconda2/bin:$PATH"' >> ~/.bashrc # 更新bashrc以当即生效 source ~/.bashrc
配置好PATH后,能够经过which conda
或conda --version
命令检查是否正确。假如安装的是Python 2.7对应的版本,运行python --version
或python -V
能够获得Python 2.7.12 :: Anaconda 4.1.1 (64-bit),也说明该发行版默认的环境是Python 2.7。设计
Conda的环境管理功能容许咱们同时安装若干不一样版本的Python,并能自由切换。对于上述安装过程,假设咱们采用的是Python 2.7对应的安装包,那么Python 2.7就是默认的环境(默认名字是root
,注意这个root不是超级管理员的意思)。code
假设咱们须要安装Python 3.4,此时,咱们须要作的操做以下:ip
# 建立一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为咱们自动寻找3.4.x中的最新版本) conda create --name python34 python=3.4 # 安装好后,使用activate激活某个环境 activate python34 # for Windows source activate python34 # for Linux & Mac # 激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统作的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH # 此时,再次输入 python --version # 能够获得`Python 3.4.5 :: Anaconda 4.1.1 (64-bit)`,即系统已经切换到了3.4的环境 # 若是想返回默认的python 2.7环境,运行 deactivate python34 # for Windows source deactivate python34 # for Linux & Mac # 删除一个已有的环境 conda remove --name python34 --all
用户安装的不一样python环境都会被放在目录~/anaconda/envs
下,能够在命令中运行conda info -e
查看已安装的环境,当前被激活的环境会显示有一个星号或者括号。
说明:有些用户可能常用python 3.4环境,所以直接把~/anaconda/envs/python34
下面的bin或者Scripts加入PATH,去除anaconda对应的那个bin目录。这个办法,怎么说呢,也是能够的,但总以为不是那么elegant……
若是直接按上面说的这么改PATH,你会发现conda命令又找不到了(固然找不到啦,由于conda在~/anaconda/bin
里呢),这时候怎么办呢?方法有二:1. 显式地给出conda的绝对地址 2. 在python34环境中也安装conda工具(推荐)。
Conda的包管理就比较好理解了,这部分功能与pip
相似。
例如,若是须要安装scipy:
# 安装scipy conda install scipy # conda会从从远程搜索scipy的相关信息和依赖项目,对于python 3.4,conda会同时安装numpy和mkl(运算加速的库) # 查看已经安装的packages conda list # 最新版的conda是从site-packages文件夹中搜索已经安装的包,不依赖于pip,所以能够显示出经过各类方式安装的包
conda的一些经常使用操做以下:
# 查看当前环境下已安装的包 conda list # 查看某个指定环境的已安装包 conda list -n python34 # 查找package信息 conda search numpy # 安装package conda install -n python34 numpy # 若是不用-n指定环境名称,则被安装在当前活跃环境 # 也能够经过-c指定经过某个channel安装 # 更新package conda update -n python34 numpy # 删除package conda remove -n python34 numpy
前面已经提到,conda将conda、python等都视为package,所以,彻底可使用conda来管理conda和python的版本,例如
# 更新conda,保持conda最新 conda update conda # 更新anaconda conda update anaconda # 更新python conda update python # 假设当前环境是python 3.4, conda会将python升级为3.4.x系列的当前最新版本
补充:若是建立新的python环境,好比3.4,运行conda create -n python34 python=3.4
以后,conda仅安装python 3.4相关的必须项,如python, pip等,若是但愿该环境像默认环境那样,安装anaconda集合包,只须要:
# 在当前环境下安装anaconda包集合 conda install anaconda # 结合建立环境的命令,以上操做能够合并为 conda create -n python34 python=3.4 anaconda # 也能够不用所有安装,根据需求安装本身须要的package便可
若是须要安装不少packages,你会发现conda下载的速度常常很慢,由于Anaconda.org的服务器在国外。所幸的是,清华TUNA镜像源有Anaconda仓库的镜像,咱们将其加入conda的配置便可:
# 添加Anaconda的TUNA镜像 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # TUNA的help中镜像地址加有引号,须要去掉 # 设置搜索时显示通道地址 conda config --set show_channel_urls yes
执行完上述命令后,会生成~/.condarc
(Linux/Mac)或C:\Users\USER_NAME\.condarc
文件,记录着咱们对conda的配置,直接手动建立、编辑该文件是相同的效果。