Conda入门理解
Conda入门理解

Conda入门理解

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的学习层面自然分成envpackage两个。
使用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 #打开环境并在这个环境里安装软件

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注