python 环境管理软件 conda

Conda 是一个开源的使用 Python 语言编写的软件包管理系统和环境管理系统,核心功能用于安装和处理多个版本的软件包及其依赖关系,能够创建一些虚拟的环境并能够在多个版本中来回切换

目前 Conda 的安装包主要有两种:Miniconda 和 Anconda。

  • Anconda 是一个开源的 Python 发行版本,包含了 Conda、Python 等 180 多个科学包及其依赖项。
  • Miniconda 是最小的 conda 安装环境,相当于 conda+python+pip,Miniconda 是个轻量级的 Conda 安装包,包内只有 Conda 相关的安装包。下载地址为 docs.conda.io/en/latest/miniconda.html#

两种安装包的主要区别是 Anconda 是一种 Python 的发行版,比 Miniconda 多了许多其他的依赖安装包,如 numpy 等常用的科学计算工具以及界面工具,因此 Anconda 更适合新手使用,并且这些依赖包都是提供给 Python 使用的,根据不同的实际使用情况,可以选择不同的 Conda 安装包进行安装

源设置

  • 查看源

    • 查看 conda 源是否配置成功,可以看出各 channel 的优先级(从上到下优先级依次增加)
      1
      conda config --get channels
  • 添加源

    • 选其一添加即可
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      # 添加官方源
      conda config --add channels r # R软件包
      conda config --add channels conda-forge # Conda社区维护的不在默认通道中的软件
      conda config --add channels bioconda # 生物信息学类工具

      # 添加国内源头 (选其一添加即可)
      # 添加中科大源
      conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
      conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
      conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
      conda config --set show_channel_urls yes

      # 添加清华大学源(偶尔抽风,此时需要换其他国内源)
      conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
      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/cloud/bioconda/
      conda config --set show_channel_urls yes

      # 添加阿里云源
      conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/free
      conda config --add channels https://mirrors.aliyun.com/anaconda/pkgs/main
      conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/conda-forge
      conda config --add channels https://mirrors.aliyun.com/anaconda/cloud/bioconda
      conda config --set show_channel_urls yes
    • 也可以直接打开 C:User\xx\.condarc 文件添加以下内容
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      channels:
      - defaults
      show_channel_urls: true
      default_channels:
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
      - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
      custom_channels:
      conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      pytorch-lts: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
      deepmodeling: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/
      ssl_verify: false
  • 删除源

    • 即重置回初始源
      1
      2
      3
      4
      5
      6
      7
      # 首先查看 channels
      conda config --get channels
      # 删除指定的 channels
      conda config --remove channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
      conda config --remove channels defaults
      # 删除配置的所有镜像源
      conda config --remove-key channels

环境管理

  • 查看环境

    • 查看当前存在的所有虚拟环境
      1
      conda env list 或者 conda info -e
  • 创建环境

    • 创建环境时可以指定安装包
      1
      conda create -n myenv numpy matplotlib python=3.7
  • 进入 / 退出环境

    • 通过 activate、deactivate
      1
      2
      activate your_env_ name(虚拟环境名)
      deactivate your_env_ name (虚拟环境名)
  • 删除环境

    • 使用 remove 删除
      1
      conda remove -n your_enev_name --all ,即可删除
  • 导出导入环境配置

    • 导出环境的配置
      1
      2
      3
      4
      5
      # 导出环境配置
      conda env export > 环境配置文件.yml

      # 导入环境配置
      conda env import -f 环境配置文件.yml
  • 打包迁移环境

    • 打包环境后迁移环境
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      # 打包环境
      conda pack -n <env_name> -o <env_name>.tar.gz

      # 迁移环境
      # 将<env_name>.tar.gz上传到新机器
      # 查看环境目录位置
      conda info

      # 解压到环境目录
      cd /path/envs
      mkdir <env_name>
      tar -zxvf <env_name>.tar.gz -C <env_name>

      # 激活
      conda activate <env_name>

包管理

  • 查看包

    • 查看环境中已经安装了的软件包
      1
      conda list
  • 安装包

    • 通过 conda install 进行安装
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      # 命令示例
      conda install --help
      # -y: yes
      conda install requests -y
      # -c: 临时增加一个 channel ,并且增加的 channels 会处于最高优先级
      conda install -c bioconda presto
      # 指定channel安装指定版本的python
      conda install -c conda-forge python==1.0.1
      # -vv: 显示下载过程中的详细日志,方便定位问题
      conda install numpy -y -vv
      # 后台下载
      nohup conda install pandas -y &
  • 删除包

    • 使用 remove 或者 uninstall 删除
      1
      2
      conda remove XXX
      pip uninstall XXX