Conda 是一个开源的软件包管理系统和环境管理系统,主要用于Python和R编程语言的环境管理。
Conda有三个版本:Conda、Anaconda、Miniconda。
Conda的功能
- 包管理:Conda能够安装、运行和更新不同版本的二进制软件包及其依赖项目。
- 环境管理:Conda允许用户创建多个独立的环境,每个环境可以安装不同的软件或者包,实现环境隔离。
三种Conda的选择
- Conda:conda是一种通用包管理系统,旨在构建和管理任何语言和任何类型的软件。举个例子:包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。
- Anaconda:Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,就是把很多常用的不常用的库都给你装好了。
- Miniconda:Miniconda,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。就只包含最基本的东西,其他的库得自己装。
一般硬件条件充裕的情况下推荐Anaconda;如果资源紧张或者个人实力较强的话可以选择Miniconda,所有需要的软件全部自己DIY安装。
安装Miniconda
可以直接从Conda官网下载,或者使用国内的镜像网址下载,这里使用的是清华tuna的镜像站点下载。
选择最最新版本的、对应操作系统的bash安装包下载,运行即可。
在安装最后会询问是否把miniconda设置为自启动(修改.bashrc文本),我这里选择了否。所以每次使用conda的时候需要自行启动conda才可以。(这样虽然用起来麻烦一点,看起来也有点奇怪,但是可以保证在不使用conda的时候自己的环境不会乱掉)
需要启动环境时: source ~/miniconda3/bin/activate
需要关闭环境时: conda deactivate
[wangzq@server2 ~]$ source ~/miniconda3/bin/activate
(base) [wangzq@server2 ~]$ conda deactivate
[wangzq@server2 ~]$
#这里activate后面不填写具体环境就默认启动base环境
Conda 的对象分为两个部分:环境(env)、包(package)。关系是:使用conda的create命令创建一个环境,在这个环境中安装自己需要的包。(初始安装的conda会自带一个base环境)
所以conda的学习层面自然分成env和package两个。
使用conda env list
可以查看计算机的conda里已经存在的虚拟环境有哪些;
使用conda list
可以查看conda下的包有哪些。(在打开一个虚拟环境的情况下使用conda list
可以查看当前环境安装了哪些包)
[wangzq@server2 ~]$ conda
usage: conda [-h] [-v] [--no-plugins] [-V] COMMAND ...
conda is a tool for managing and deploying applications, environments and packages.
optional arguments:
-h, --help Show this help message and exit.
-v, --verbose Can be used multiple times. Once for detailed output, twice for INFO logging, thrice for DEBUG logging, four times for TRACE
logging.
--no-plugins Disable all plugins that are not built into conda.
-V, --version Show the conda version number and exit.
commands:
The following built-in and plugins subcommands are available.
COMMAND
activate Activate a conda environment.
clean Remove unused packages and caches.
compare Compare packages between conda environments.
config Modify configuration values in .condarc.
content-trust Signing and verification tools for Conda
create Create a new conda environment from a list of specified packages.
deactivate Deactivate the current active conda environment.
doctor Display a health report for your environment.
export Export a given environment
info Display information about current conda install.
init Initialize conda for shell interaction.
install Install a list of packages into a specified conda environment.
list List installed packages in a conda environment.
notices Retrieve latest channel notifications.
package Create low-level conda packages. (EXPERIMENTAL)
remove (uninstall)
Remove a list of packages from a specified conda environment.
rename Rename an existing environment.
repoquery Advanced search for repodata.
run Run an executable in a conda environment.
search Search for packages and display associated information using the MatchSpec format.
update (upgrade) Update conda packages to the latest compatible version.
Miniconda软件使用
一、管理conda
检查conda版本
conda --version
conda --version
conda -V
列出conda的环境和包
conda env list
conda list
新安装的conda建议自行配置一下conda config (多添加一些channels源通道可以保证获得更全的包和更好的网速)
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --set show_channel_urls yes
conda升级(这个我一般不使用,版本更新升级会带来很多不确定因素的变化)
conda update conda
conda update anaconda
conda update --all
conda释放空间(这步非常重要,每次创建新的虚拟环境或者安装、更新包之前(之后)都需要释放空间,否则有可能报错)
conda clean --all
二、管理环境
创建环境
conda create -n your_env_name python=x.x #指定python软件版本创建一个名叫“your_env_name”的环境
conda create -p your_env_path python=x.x #指定python软件版本创建一个存放路径为“your_env_path”的环境
conda create -n env2 --clone path/to/file/env1 #克隆env1、创建一个env2
conda create -n myenv sqlite #指定软件(sqlite),创建一个叫“myenv”的环境
删除环境
conda env remove -n your_env_name #删除“your_env_name”环境
conda env remove -p your_env_path #删除“your_env_path”环境
激活环境\关闭环境
source ~/miniconda3/bin/activate myenv #这个是没有把conda软件设置为默认启动的做法
conda activate myenv
conda deactivate
三、管理包
安装包 或 安装特定版本的包(如果激活一个环境后安装,这个包就会安装到该环境内)
conda install package-name
conda install package-name==version
查看所有已安装包
conda list
卸载包
conda remove package-name
更新包(我一般不建议使用,版本更新升级会带来很多不确定因素的变化)
conda update package-name
conda update --all
搜索包(在你添加的channels源通道里搜索是否有你所需要的软件包,所以channels越多,就越可能搜到)
conda search python #这里的查找可以使用模糊搜索
Tips:建议在使用Conda的时候,针对每一个软件都创建一个单独的env环境,这样方便管理与使用,可以最大效率的使用Conda的“隔离”功能。
export PATH=/home/software/conda/4.9.2/bin/:$PATH #把conda加入到当前环境中,也可以source ~/miniconda3/bin/来加载
install_dir=/home/software/youSoftware/1.0.0 #指定软件存放路径
install_param="youSoftware==1.0.0" #指定软件和指定版本
conda create -p $install_dir #创建环境
source activate $install_dir && conda install -c bioconda -c conda-forge -c defaults $install_param #打开环境并在这个环境里安装软件