conda使用教程

文摘   2024-10-21 00:36   天津  

本篇文章介绍了conda的使用教程,希望能帮到同学们~本篇文章适用于 ubuntu20.04。ubuntu20.04是 “西柚云” 主要使用的操作系统西柚云官网


01

虚拟环境管理


  • 列出虚拟环境信息

conda env list
  • conda create -n <env_name> (创建虚拟环境)

# 命令示例conda create -n py38 -yconda create -n py39 python=3.9 -y  # 官方推荐使用这种方式conda create -n py39_2 -y && conda install -n py39_2 python=3.9 -y# 比较两种创建方式有何不同,并无任何不同diff miniconda3/envs/py39 miniconda3/envs/py39_2

可以看到,在创建环境时指定python版本,和创建完环境后安装python的指定版本两者导致的结果并无不同,那为什么官方推荐在创建环境时使用python=3.9的方式指定python版本呢?这是因为如果您要在该虚拟环境中使用python,就应该在创建环境之初下载python3.9,之后在这个虚拟环境中下载的其他包都会匹配python3.9的依赖与约束。如果安装了很多其他包之后再安装python3.9,处理环境依赖就会变得较为复杂,甚至导致一些不易察觉的 bug。
  • conda activate <env_name> (进入虚拟环境)

# 命令示例conda activate py39
  • conda deactivate <env_name> (退出虚拟环境)

# 命令示例conda deactivate 
  • conda remove -n <env_name> --all(删除虚拟环境)

# 命令示例conda create -n test -yconda env list# 删除 test 虚拟环境conda remove -n test --allconda env list
  • 导出虚拟环境

# 适用于在相同操作系统版本下 clone 虚拟环境conda list --explicit > spec-list.txt# 适用于所有平台之间 clone 虚拟环境conda env export > environment.yml



02

channels管理


  • conda 处理 channels 的优先级的步骤:

1. 按通道优先级从高到低对包进行排序。
2. 将捆绑的软件包(具有相同通道优先级的软件包)从最高版本号到最低版本号排序。例如,如果channelA 包含NumPy1.12.0和1.13.1,则NumPy 1.13.1将被排序更高。
3. 将仍然绑定的软件包(具有相同通道优先级和相同版本的软件包)从最高到最低内部版本号排序。例如,如果channelA 同时包含 NumPy1.12.0、build1和build 2,则build2首先排序。通道B中的任何包都将排在通道A 之下。
4. 安装排序列表中满足安装规范的第一个包
  • 列出conda中配置的channels,根据从低到高的优先级排列

    conda config --get channels 
  • 添加channels,添加国内的 channels 也就是我们常说的添加国内源

# 添加南方科技大学conda config --add channels https://mirrors.sustech.edu.cn/anaconda/pkgs/main/conda config --add channels https://mirrors.sustech.edu.cn/anaconda/cloud/conda-forge/conda config --add channels https://mirrors.sustech.edu.cn/anaconda/cloud/bioconda/conda config --set show_channel_urls yes


  • 删除channels

    方法1、通过命令删除

# 首先查看channelsconda config --get channels# 删除指定的channelsconda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

    方法2、编辑 .condarc文件删除想要删除 channels 对应的行

vim ~/.condarc
  • 安装包时暂时添加channels,此channels处于最高优先级

conda install -c bioconda presto




03

包管理


  • 使用conda安装包之前,需要在以下链接中搜索conda包,找到安装对应包的命令后再进行安装,如果不能在下面的链接中找到安装方法,即表明该包不能通过conda安装。

  • 搜索conda包



  • conda list (查看当前虚拟环境已经安装的包)

  • conda install <package_name>

# 命令示例conda install --help# -y: yesconda install requests -y# -c: 临时增加一个channel,并且增加的channels会处于最高优先级conda install -c bioconda presto# -vv: 显示下载过程中的详细日志,方便定位问题conda install numpy -y -vv# 后台下载nohup conda install pandas -y &
  • conda官方建议,使用conda安装的 python包和使用pip安装的python包是有略微不同的,如果可能,尽量使用conda来安装包。参考链接

    • 在conda 4.6以后,conda可以识别pip安装的python包,不过目前这一功能还处于实验阶段。

    • 在conda中应该优先使用conda安装包,不要混用conda和pip,可以设置一个虚拟环境专门用户pip管理python包

    • conda和pip都可以根据文件批量安装python

pip list --format=freeze > requirements.txtpip install -r requirements.txtconda install -n env_name --file requirements.txt




04

配置管理


  • conda config --show

    # 查看channelsconda config --helpconda config --get channelsconda config --remove <key> <value>
  • 我们很难记住那么多配置项的作用,如果需要可以查阅 conda 官方教程对各配置项的详解。conda配置项的作用








灵活胖子的科研进步之路
医学博士,R语言及Python爱好者,科研方向为真实世界研究,生信分析与人工智能研究。
 最新文章