共计 4554 个字符,预计需要花费 12 分钟才能阅读完成。
Anaconda
Anaconda 简介
Anaconda 是一个免费开源的 Python 和 R 语言的发行版本,用于计算科学(数据科学、机器学习、大数据处理和预测分析),Anaconda 致力于简化包管理和部署。Anaconda 的包使用软件包管理系统 Conda 进行管理。超过 1200 万人使用 Anaconda 发行版本,并且 Anaconda 拥有超过 1400 个适用于 Windows、Linux 和 MacOS 的数据科学软件包。
Anaconda 拥有超过 1400 个软件包其中包含 Conda 和虚拟环境管理,他们都被包含在 Anaconda Navigator 中,因此无需去了解独立安装每个库。支持 Linux, Mac, Windows 系统,提供了包管理与环境管理的功能,可以很方便地解决多版本 python 并存、切换以及各种第三方包安装问题。Anaconda 利用工具 / 命令 conda 来进行 package 和 environment 的管理,并且已经包含了 Python 和相关的配套工具。可以使用已经包含在 Anaconda 中的命令 conda install 或者 pip install 从 Anaconda 仓库中安装开源软件包。Pip 提供了 Conda 大部分功能,并且大多数情况下两个可以同时使用。可以使用 conda build 命令构建自定义包,然后通过上传到 Anaconda Cloud、PyPI 或其他仓库来分享给其他人。
Anaconda2 默认包含 Python 2.7,Anaconda3 默认包含 Python 3.7,但是你可以创建虚拟环境来使用任意版本的 Python 包。
这里先解释下 conda、anaconda 这些概念的差别。conda 可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与 pip 的使用类似,环境管理则允许用户方便地安装不同版本的 python 并可以快速切换。Anaconda 则是一个打包的集合,里面预装好了 conda、某个版本的 python、众多 packages、科学计算工具等等,所以也称为 Python 的一种发行版。其实还有 Miniconda,顾名思义,它只包含最基本的内容——python 与 conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda 是一种选择。
进入下文之前,说明一下 conda 的设计理念——conda 将几乎所有的工具、第三方包都当做 package 对待,甚至包括 python 和 conda 自身!因此,conda 打破了包管理与环境管理的约束,能非常方便地安装各种版本 python、各种 package 并方便地切换。
Anaconda 特点
- 丰富的第三方库
Anaconda 附带了一大批常用数据科学包,它附带了 conda、Python 和 150 多个科学包及其依赖项。因此你可以立即开始处理数据。
- 管理包
Anaconda 是在 conda(一个包管理器和环境管理器)上发展出来的。可以使用 conda 来安装、更新、卸载工具包,并且它更关注于数据科学相关的工具包。在安装 anaconda 时就预先集成了像 Numpy、Scipy、pandas、Scikit-learn 这些在数据分析中常用的包。另外值得一提的是,conda 并不仅仅管理 Python 的工具包,它也能安装非 python 的包。比如在新版的 Anaconda 中就可以安装 R 语言的集成开发环境 Rstudio。
- 虚拟环境管理
在 conda 中可以建立多个虚拟环境,用于隔离不同项目所需的不同版本的工具包,以防止版本上的冲突。对纠结于 Python 版本的同学们,我们也可以建立 Python2 和 Python3 两个环境,来分别运行不同版本的 Python 代码。
Anaconda 还包含一些功能强大的工具
- Anaconda Navigtor:用于管理工具包和环境的图形用户界面,后续涉及的众多管理命令也可以在 Navigator 中手工实现。
- Jupyter notebook:基于 web 的交互式计算环境,可以编辑易于人们阅读的文档,用于展示数据分析的过程。
- qtconsole:一个可执行 IPython 的仿终端图形界面程序,相比 Python Shell 界面,qtconsole 可以直接显示代码生成的图形,实现多行代码输入执行,以及内置许多有用的功能和函数。
- spyder:一个使用 Python 语言、跨平台的、科学运算集成开发环境。
Anaconda 安装
- 下载
官网点击 Download 进入下载页面,选择对应的平台和版本下载,我这里是 Anaconda3-2019.03-MacOSX-x86_64.pkg
这个版本
- 安装
下载完成后双击下一步下一步知道安装完成,安装完成后自动会把 anaconda 的执行文件的路径添加到环境变量中无需手动配置,如何需要手动改变需要自行配置。
Anaconda 的使用
# 获取帮助
$ conda --help
# 安装完成后验证 conda 的版本和 python 的版本等详细信息
$ conda info
C:\>conda info
active environment : None
user config file : C:\Users\Andy\.condarc
populated config files : C:\Users\Andy\.condarc
conda version : 4.6.12
conda-build version : 3.10.5
python version : 3.6.2.final.0
base environment : D:\software\devapps\anaconda3-5.2.0 (writable)
channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/win-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/noarch
https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/win-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : D:\software\devapps\anaconda3-5.2.0\pkgs
C:\Users\Andy\.conda\pkgs
C:\Users\Andy\AppData\Local\conda\conda\pkgs
envs directories : D:\software\devapps\anaconda3-5.2.0\envs
C:\Users\Andy\.conda\envs
C:\Users\Andy\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.6.12 requests/2.21.0 CPython/3.6.2 Windows/10 Windows/10.0.17763
administrator : False
netrc file : None
offline mode : False
C:\>
# 列出我本机的所有环境,第一个是自己创建的,后面的是我自己后续创建的
$ conda info -e
C:\Users\Andy>conda info -e
# conda environments:
#
base * D:\software\devapps\anaconda3-5.2.0
python27 D:\software\devapps\anaconda3-5.2.0\envs\python27
python36 D:\software\devapps\anaconda3-5.2.0\envs\python36
python37 D:\software\devapps\anaconda3-5.2.0\envs\python37
C:\Users\Andy>
包管理
一般来说 conda 仓库的软件没有 PyPI 更新快和全。所以推荐 conda 只用来创建虚拟环境,包的安装管理仍然使用 pip。
# 列出当前环境下所有安装的 conda 包。$ conda list
# 列举一个指定环境下的所有包
$ conda list -n env_name
# 查询库
$ conda search scrapys
# 安装库安装时可以指定版本例如:(scrapy=1.5.0)$ conda install scrapy
# 为指定环境安装某个包
$ conda install --name target_env_name package_name
# 更新安装的库
$ conda update scrapy
# 更新指定环境某个包
$ conda update -n target_env_name package_name
# 更新所有包
$ conda update --all
# 删除已经安装的库也尅用(conda uninstall)$ conda remove scrapy
# 删除指定环境某个包
$ conda remove -n target_env_name package_name
# 删除没有用的包
$ conda clean -p
虚拟环境管理
# 创建环境,后面的 python=3.6 是指定 python 的版本
$ conda create --name env_name python=3.6
# 创建包含某些包的环境(也可以加上版本信息)$ conda create --name env_name python=3.7 numpy scrapy
# 激活某个环境
$ activate env_name
# 关闭某个环境
$ conda deactivate
# 复制某个环境
$ conda create --name new_env_name --clone old_env_name
# 删除某个环境
$ conda remove --name env_name --all
# 生成需要分享环境的 yml 文件(需要在虚拟环境中执行)$ conda env export > environment.yml
# 别人在自己本地使用 yml 文件创建虚拟环境
$ conda env create -f environment.yml