Anaconda 介绍、安装和使用指南(详细版本)

Anaconda

1. Anaconda 与 Conda 是什么?

1.1 什么是 Anaconda

Anaconda 是一个用于python/R科学计算和机器学习的开源工具(也称为Python的一种发行版),支持 Linux, macOS, Windows, 包含了conda等众多工具包及其依赖项,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。到目前为止,它在全世界拥有超过1100万用户。

讲到Anaconda,就不得不提到Miniconda 。

1.2 什么是 Miniconda

  • 相较于Anaconda会预安装众多的软件包,Miniconda就是一个迷你 Anaconda,只是预安装conda、Python及其依赖;
  • 用户在使用过程中根据自己的需求再使用conda安装软件包或创建各种环境;
  • 对于内存有限,或者觉得Anaconda预安装过于冗余的童鞋可以选择Miniconda.

1.3 什么是 conda

Package, dependency and environment management for any language—Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN*

conda是一种开源的包和环境管理系统。

  • 适用语言:Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN*
  • 适用平台:Windows, macOS, Linux
包管理
  • 作为包管理工具,conda将所有的工具和第三方程序都当作包来管理;
  • conda 可以快速安装,运行和更新包及其相关的依赖关系。
环境管理
  • conda也是一个环境管理工具, 可以创建多个虚拟环境,并基于工作目的在切换环境使用不同版本的工具包。例如,电脑上除了默认版本的Python,还可以创建其他各种版本python封闭环境,并在这些python版本之间进行快速切换。

讲到到Python包管理器,就不得不提到 pip。 pip是标准Python发行版自带的包管理工具,用于查找、下载、安装、卸载安装包。

conda VS pip

pip

  • pip是标准Python发行版的包管理器,只能用于Python;
  • pip安装包时并不会自动安装相关的依赖关系;
  • pip 无法管理Python 版本;

conda

  • conda 安装包时会自动安装相关的依赖关系;
  • conda 适用于Python, R等多种语言,可以安装python包以外的其他软件;
  • conda 可以管理Python 版本;
  • conda 可以创建和管理虚拟环境;

1.4 Anaconda 的优点

Anaconda-Open-Source-Projects
  • 快速下载和安装1500 + Python/R 数据科学包
  • 使用Conda 管理库、依赖项和环境
  • 使用scikit-learn、TensorFlow和Theano开发和训练机器学习和深度学习模型
  • 使用Dask、NumPy、panda和Numba分析数据
  • 使用Matplotlib、Bokeh、Datashader和Holoviews可视化结果

2. Anaconda 安装

安装条件

  • 操作系统: Windows >= 7.0, 64-bit macOS 10.10+, Linux( Ubuntu, RedHat, CentOS 6+)
  • 磁盘大小:>5 GB

Anaconda官网下载Anaconda ,下载Python 3.7 version ;

这个有两种安装模式:
64-Bit Graphical Installer (634 MB)
64-Bit Command-Line Installer (544 MB)

2.1 基于macOS GUI方式安装
  • Anaconda Distribution页面下载安装包:Anaconda3-5.3.1-MacOSX-x86_64.pkg
  • 安装:直接双击;


    Anaconda Installation
  • 接下来,一步步Continue;
  • 最终出现如下界面,就表示安装成功了。


    anaconda installation
2.2 基于macOS的命令操作方式安装

Anaconda Distribution页面下载安装包: Anaconda3-5.3.1-MacOSX-x86_64.sh

bash ~/Downloads/Anaconda3-5.3.1-MacOSX-x86_64.sh
  • 接着出现:Please, press ENTER to continue ;
  • 按下 Enter 键继续: 这一步就是浏览软件许可协议,直接按Enter滑到底,输入yes, 接下来出现:
Anaconda3 will now be installed into this location:
/Users/Username/anaconda3  #anaconda3现在安装路径


  \- Press ENTER to confirm the location #ENTER确认anaconda3就安装到/Users/Username下
  \- Press CTRL-C to abort the installation #中止安装
  \- Or specify a different location below #在后面自己指定安装路径
  • 这儿选择默认安装路径( /home/<user>/.bash_profile),直接点击Enter;
    好了,接下来泡杯茶,等一会儿。。。。。。。。。。。。
  • 安装好了之后,又要推销Microsoft VScode;
    我选择no,因为我已经安装过了;
$ source ~/.bash_profile
$ python --version
Python 3.6.7 :: Anaconda, Inc.
$ vi ~/.bash_profile

Anaconda安装好了,打开Anaconda Navigator检查一下;

3. Anaconda Navigator 了解和使用

3.1 Anaconda Navigator
Anaconda Navigator

Anaconda Navigator是 Anaconda 内置的桌面图形用户界面(GUI),不需要使用命令行就可以启动应用和管理conda包和环境。

Home: 当前环境下的应用程序

  • 在Spyder IDE中运行Python
Spyder IDE

打开Spyder ,展示的是默认界面(通过view -> Panes 调整):

左边面板是编辑器;
右上方面板可以查看帮助,变量,当前目录文件系统;
右下面板是IPython console: 可以查看运行结果或运行日志;

a.构建一个hello.py程序

print("Hello Anaconda")

b. 运行(F5),右下角Console查看程序运行状态

  • 在Jupyter Notebook中运行Python

Try in Your Browser. No Installation Needed.


jupyter

启动jupyter notebook

$ jupyter notebook
#New->Python3
print("Hello Anaconda")
#Run or  Cell -> Run Cells
  • jupyterlab
    基于Web 的下一代 Jupyter,集成了更多的功能;

    jupyter lab

  • Qt console
    Qt console 作为一个非常轻量级的应用程序,在很大程度上与终端是相似的;但是 它也拥有GUI的部分功能, 内联图片,语法高亮......

import numpy as np
import matplotlib.pyplot as plt
from scipy.special import jn
import math
x = np.linspace(0,4*math.pi)
for i in range(6):
     plt.plot(x,jn(i,x))

Qt console

Environments: Anaconda 下的环境管理;可以创建,克隆,导入,移除;
Learning: 学习资料
Community : Anaconda 社区
Document : Anaconda 教程
Developer Blog : Anaconda 开发者博客

4. conda 使用

conda 命令一览:
conda clean:   #删除没有用到的包和清除缓存
conda config:   #修改 .condarc 中的配置;这个命令是模仿 git config而来;默认写入到~/.condarc
conda create:   #用于创建新环境
conda info:   #查看conda 详细信息
conda install:   #为指定的环境安装包
conda list:   #查看指定环境安装包信息
conda remove:   #移除指定环境指定安装包
conda search:   #搜索安装包,并展示搜索结果
conda update:   #更新安装包

4.1 管理 conda

conda 版本查看

$ conda --version
conda 4.5.12

conda 版本更新

$ conda update conda

4.2 conda 管理环境

查看已安装的环境

conda env list   #conda info --envs

创建一个名为python36的环境,并安装Python 3.6和pandas

conda create --name python36 python=3.6 pandas

激活某个环境

conda 4.6以后版本
Windows: conda activate python36
Linux and macOS: conda activate python36

conda 4.6以前版本
Windows: activate python36
Linux and macOS: source activate python36

退出当前环境

conda deactivate

返回默认环境

conda activate

分享环境:将当前环境信息生成YAML文件

conda env export > environment.yaml

YAML文件格式:

name: stats2
channels:
  - javascript
dependencies:
  - python=3.4   # or 2.7
  - bokeh=0.9.2
  - numpy=1.9.*
  - nodejs=0.10.*
  - flask
  - pip:
    - Flask-Testing

利用YAML文件生成环境

conda env create -f environment.yaml

删除一个已有的环境及其安装包

conda remove --name myenv --all

4.3 conda 管理Python

创建一个包含Python 2.7的环境

conda create --name python27 python=2.7
conda activate python27
python -V
Python 2.7.15 :: Anaconda, Inc.

克隆环境python27: 可以使用此方法为环境重新命名

conda create --name myclone --clone python27

4.4 conda 管理包

查看当前环境已经安装的包

    conda list  

查看指定环境中的安装包

    conda list -n python27

在Anaconda 库中搜索包

    conda search numpy  #模糊搜索
    conda search numpy=1.12
    conda search numpy[subdir=linux-64] #指定系统
    conda search --override-channels --channel http://conda.anaconda.org/mutirri iminuit  #指定仓库安装包

安装包到当前环境

    conda install numpy

安装包到指定环境

    conda install -n python27 numpy

同时安装多个包到当前环境

    conda install numpy scipy

安装指定版本包到指定环境

    conda install -n python27 scipy=0.15.0

安装包更新

    conda update numpy

移除安装包

    conda remove -n python27 scipy

4.5 Anaconda channels管理

Channels are the path that conda takes to look for packages.

conda 安装包时,首先在一系列仓库搜索包,然后根据规则进行优先级排序(默认):

  1. 根据channel priority排序;
  2. 根据version number排序;
  3. 根据build number排序;
  4. 选取优先级最高的包进行安装;

安装所有channel中最新版本, 如下设置

    conda config --set channel_priority false

包安装规则顺序改为:

  1. 根据version number排序;
  2. 根据channel priority排序;
  3. 根据build number排序;
  4. 选取优先级最高的包进行安装;

查看已有的 channels

    conda config --get channels

添加 channels

    conda config --add channels

添加新的channel到最高优先级

    conda config --add channels new_channel

添加新的channel到最低优先级

    conda config --append channels new_channel

Anaconda 三方源

Conda-forge 包含许多默认channel中不存的packages;
Bioconda 是一个生物信息Channel, 提供超过6000个生物信息分析安装包供conda使用。

    conda config --add channels bioconda
    conda config --add channels conda-forge

使用国内Anaconda 仓库的镜像可以使conda加速安装工具。
添加清华大学Anaconda 镜像

    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    # Conda Forge
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ 
    # bioconda
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

移除channel

    conda config --remove channels channelName

参考:
Installing Anaconda Distribution on macOS
Anaconda Navigator
Navigator Cheat Sheet
Conda
conda cheat sheet
清华大学开源软件镜像站-Anaconda 镜像使用帮助

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,360评论 5 461
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,195评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,543评论 0 323
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,420评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,242评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,224评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,626评论 3 384
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,301评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,589评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,660评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,423评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,286评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,662评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,951评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,237评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,613评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,804评论 2 335

推荐阅读更多精彩内容