跳转至

conda使用

conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换,conda 支持 python、R、 ruby、 lua、 scala、 java、 javaScript、 C/ C++、 fortran 等多种语言,还支持大部分生信软件的安装。

conda 安装

miniconda 和 anaconda 都提供了 conda,两者的区别在于 anaconda 打包了很多 numpy、scipy、pandas 这些科学库,而后者没有。

平台上安装了一些版本的 anaconda,可以通过 module avail 查看安装的版本,并通过 module load 加载。当然也可以选择安装 conda 到自己的家目录下,这样更有利于后期 conda 版本的更新。导入平台现有的 conda,还是安装 conda 到自己的家目录,二者取其一,下面是 conda 的安装过程。

安装 miniconda
# 1. 获得最新的miniconda安装包;
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 2. 安装到自己的HOME目录下software/miniconda3中,这个目录在安装前不能存在,否则会报错;
sh Miniconda3-latest-Linux-x86_64.sh -b -p ${HOME}/software/miniconda3

# 3. 安装成功后可以删除安装包,节省存储空间
rm -f Miniconda3-latest-Linux-x86_64.sh

# 4. 将环境变量写入~/.bashrc文件中;(下面这句话,添加到~/.bashrc文件中)
export PATH=${HOME}/software/miniconda3/bin:$PATH

# 5. 退出重新登录或者执行以下命令,即可导入 conda 环境
source ~/.bashrc

# 6. 检查是否安装成功
conda --version

conda 使用

conda 环境的创建、切换和删除

conda 作为一个环境管理工具,它允许用户轻松创建、保存、加载不同的环境,解决不同项目间依赖包版本冲突的问题,因此它最基本的几个功能就是虚拟环境的创建、虚拟环境的切换、虚拟环境的查看和虚拟环境的删除。

conda info -e 查看 conda 环境

通过 conda info -e 指令可以查看 conda 管理的虚拟环境列表。

在安装完 conda 后,默认会生成一个名为 base 的根环境。建议不要在根环境下安装软件,而是创建 conda 环境,并在创建的环境中安装软件包。

conda create -n env_name 创建 conda 环境

通过conda create -n env_name 指令创建 conda 环境。env_name 为需要创建的 conda 环境名,需要自行指定。

source activate env_name 切换 conda 环境

通过 source activate env_name 指令切换至指定的 conda 环境中。进入环境后,就可以在该环境中使用 conda 安装管理软件,或使用环境中的软件。

注意

conda activate env_name 指令也可以用来切换环境,但前提是需要在安装完 conda 后执行 conda init

conda deactivate 退出 conda 环境

通过 conda deactivate 退出当前 conda 环境。

conda remove -n env_name --all 删除 conda 环境

通过 conda remove -n env_name --all 指令删除名为 env_name 的 conda 环境,如果执行指令时正在该环境中,则无法顺利执行,需要退出后才能执行成功。

conda 查找、安装和删除软件包

之前已经介绍了如何创建、查看、切换和删除 conda 环境。在创建完一个 conda 环境时,里面是没有安装任何软件包的,需要切换到对应的环境中安装。

conda list 查看当前环境中的软件

通过 conda list 查看当前环境中,通过 conda 安装的软件。也可以执行 conda list -n env_name 查看指定 conda 环境中安装的软件。

通过 conda search pkg_name 指令查看 conda 提供的软件包,在没有配置 channel 的情况下,会从默认的 channel 中查找软件,平时用的比较多的 channel 是 conda-forge,可以通过 conda search pkg_name -c conda-forge 到该 channel 中查找软件包。

还可以直接打开 anaconda.org 网站,直接输入软件包的名字查找软件包,查到后点击进入查看安装指令。

conda install pkg_name 安装软件包

通过 conda install pkg_name 指令查看 conda 提供的软件包,在没有配置 channel 的情况下,会从默认的 channel 中安装软件。

conda update pkg_name 更新软件包

执行conda update pkg_name 会将安装包更新到可更新到的最新版本,或者执行conda update pkg_name==version 指定版本更新。

conda remove pkg_name 卸载指定的安装包

通过 conda remove pkg_name 指令卸载指定的安装包。

命令总结

conda info -e             # 查看可用的 conda 环境
conda create -n env_name  # 创建名为 env_name 的环境
conda create -n env_name python==3.11.6  # 创建名为 env_name 的环境,并安装 python 3.11.6
source activate env_name  # 切换至名为 env_name 的环境
conda activate env_name   # 切换至名 env_name 的环境
conda deactivate          # 退出当前环境
conda remove -n env_name --all  # 删除名为 env_name 的环境
conda list                # 查看当前环境已安装的 conda 包
conda list -n env_name    # 查看 env_name 环境已安装的 conda 包
conda search pkg_name     # 搜索 pkg_name 名的软件
conda install pkg_name    # 安装 pkg_name 名的软件
conda update pkg_name     # 更新当前环境 pkg_name 包
conda remove pkg_name     # 卸载名为 pkg_name 的包

例子

Python 环境

创建一个 python 环境,并在虚拟环境中安装 tensorflow gpu 1.14.0 版本库;

# 创建时可以指定Python版本,不指定的话会使用默认的版本(miniconda自带的Python版本);
conda create -n TensorFlow-1.14.0 -y

# 进入上一步创建好的环境;
source activate TensorFlow-1.14.0 

# 安装相应的库;
conda install tensorflow-gpu=1.14.0 # 根据自己的需要安装相应的库;

# 安装pip并使用pip安装 python 库;
conda install pip     # 环境中需要先安装pip
pip install numpy     # 根据自己的需要安装相应的库

# 退出当前的虚拟环境;
conda deactivate

R 语言环境

R是用于统计分析、绘图的语言和操作环境。R 是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

# 1. 创建虚拟环境,并在创建的时候指定安装R 4.3版本;
conda create -n myEnvR r=4.3 -y

# 进入上一步创建好的虚拟环境;
source activate myEnvR

# 安装R语言库,比如stringi
conda install r-stringi  

# 安装完后就可以用R语言环境了,如果要退出当前环境则执行以下指令;
conda deactivate

Perl 语言环境

用 conda 安装和管理perl语言环境。

# 创建虚拟环境;
conda create -n myEnv

# 进入创建好的虚拟环境;
source activate myEnv

# 安装perl和cpan
conda install -c bioconda perl perl-app-cpanminus

# 安装perl相关库
cpanm My::Module

生信软件

bioconda 是一个 conda 中专门用来提供生信软件的 channel,提供有超过7000个的生信软件,以下是通过conda安装生信软件的例子

# 创建虚拟环境
conda create -n anvio 
# 切换到创建好的环境
source activate anvio
# 安装anvio
conda install -c bioconda anvio -y

更多关于生信软件安装的例子,可以查看链接

Channel 相关

常见问题

安装卡顿并报错

Collecting package metadata (repodata.json): - WARNING conda.models.version:get_matcher(538): Using .* with relational operator is superfluous and deprecated and will be removed in a future version of conda. Your spec was 1.7.1.*, but conda is ignoring the .* and treating it as 1.7.1

解决方法,可能是 conda 源出了问题,恢复默认源即可:

conda config --remove-key channels

安装卡顿

安装 conda 软件时卡在:

Collecting package metadata (current_repodata.json): done Solving environment:

解决方式为在 base 根环境中尝试执行:

conda clean --all
conda update --all

安装速度慢

更换国内源,如使用北京大学镜像站的源