Anaconda
- Anaconda 官网:https://www.anaconda.com/
- 跨平台(Windows, MacOS, Linux)
- 开源(安装包一堆,只有你想不到,没有你搜不到)
- 多个安装环境(可以随便造,想用python哪个版本可随心切换)
- 如果是做生物信息相关的数据分析,一般在Linux平台上使用。
个人一般使用的是individual edition。主要有两个原因,免费(我的钱包不允许我买付费的版本了)和个人版的功能已经能满足我们的需求。细心的朋友可能已经发现了Anaconda和Conda之间的联系了。Conda实际上是一个安装包管理员,相当于手机中安装APP的应用市场。
Miniconda
- Miniconda 文档:https://docs.conda.io/en/latest/miniconda.html
- Anaconda 的精简版,主要包括了conda, Python,和其他一些有用的包(pip, zlib,等等),如果想安装其他包,用
conda install command
,可以安装Anaconda里面的包。
Conda
- Conda 文档:https://docs.conda.io/en/latest/
- 开源
- 跨平台(Windows, MacOS, Linux)
- 支持大多数编程语言(Python, R, Ruby, Lua, Scala, Java, JavaScript, C/ C++, FORTRAN, and more)
- 本质是一个安装包管理系统和环境管理系统
Conda的作用
安装包管理系统:可以搜索你想要的包。支持包的安装,卸载,更新。(相当于手机中APP的安装,卸载和更新)
环境管理系统:如果你需要在不同版本的python下安装包,Conda可以建立很多个用不同python版本的环境,在Conda默认环境下也可以安装很多包,具体看https://repo.anaconda.com/。(相当于有的软件不能兼容高版本的Android系统,那就在手机上安装多个Android系统,根据软件需求,随意切换Android版本)
Bioconda
- Bioconda 文档:https://bioconda.github.io/
- Bioconda 是一个专门存放和生物信息相关的软件包的地方,也就是一个conda channel。它主要包括以下三个部分:
- GitHub上有一个存放recipes的仓库
- 有一个专门的系统(bioconda-utils[https://github.com/bioconda/bioconda-utils])把recipes转换成可以直接安装的Conda包
- 有一个仓库是专门存放已经写好的Conda包,可以直接安装
辅助理解Conda的小知识
recipes 是什么意思
- recipes 必须包括一个metadata file(meta.yaml),可能包括一个shell script(用来安装包)
- meta.yaml 编写规则。如果自己不做开发的话暂时不需要管这个文件编写规则,只要知道recipes是conda包的前世。
Conda-forge
- conda-forge 官网:https://conda-forge.org/
- 一个GitHub上的社区专门做开源的Conda的包。
Python Package Index(PyPI)
python 官方的第三方库的仓库,个人也可以下载别人写的包也可以将自己的代码打包上传。
pip
- pip 文档:https://pypi.org/project/pip/
- python包的管理系统,可以安装PyPI提供的包也可以安装其他的python包,pip被默认包括在Anaconda和MiniConda中所以不需要自己额外安装。pip本质上是PyPI中的一个项目,它的作用就是安装Python包。
conda channel
- Conda Channels 文档:https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/channels.html
- Conda channel是用来存放各种安装包的地方。Conda的安装包是从网站上下载的,在不指定安装包网站的情况下,默认从 https://repo.anaconda.com/pkgs/ 下载。如果我们想要安装的包不在这个默认的网站上我们就需要指定安装的网站。举个栗子,我们想从conda-forage下载scipy这个包,
conda install scipy --channel conda-forge
总结
Anaconda和Miniconda都包括了Conda, 这就相当于不管你苹果手机还是安卓手机都有安装APP的应用市场,这个Conda就相当于你下载APP的应用市场。
手机应用市场有很多专区,比如说有娱乐和办公专区,每个专区都包括很多APP。Bioconda就相当于一个生信软件下载专区,conda-forge是一个开源软件专区。
最后附上一张我自己画的图。可以帮助你们理清Conda家族关系图。
全文原创,如需转载请联系本人 Wentao813@gmail.com。
留言区