Conda cheatsheet

Introduction

Conda 是一个开源的包和环境管理系统,适用于 Python, R, Ruby 等各种语言,能够构建独立的环境用于不同任务
Anaconda 和 Miniconda 均为 python 的一种发行版本,集成了 conda 以及其他的一些包和软件。Anaconda 包含了 conda, conda build, Python 以及超过100种的开源包及依赖项,比较庞大;而 Miniconda 仅包含 conda,python 以及少量必需的包,其他的包可以后续根据实际需要安装

基本操作

conda --version    # 等价于 conda -V 检查版本号
conda info
conda update conda # 更新

Environment

Conda environment 指的是包含所安装的特定 conda 包的路径,默认的环境名称为 base。当你改变某一环境时,其他的环境并不会受到影响。可以通过 activatedeactivate 实现环境的切换。另外还可以通过将 environment.yaml 拷贝给他人实现环境的共享

conda create -n <myenv>    # create an environment called myenv,默认在目录 /env/ 下
conda create -n myenv scipy    # 创建环境时同时安装指定的包。建议一次性安装所有要用的包,避免单个安装发生冲突
conda remove -n <myenv> --all    # remove an environment
source activate <myenv>  
source deactivate              # Change your current environment back to the default (base)
conda info --envs              # 列出所有构建的环境,其中当前所处环境前会表上*号  
conda env list                 # 同上

Packages

conda install <package>
conda search <package>    # Check to see if a package you have not installed is available from the Anaconda repository
conda list                # 列出环境中所有的包
conda update <package>    # update a package
conda remove <package>    # remove a package
# 以上操作均在当前env中进行 如果想指定某个环境 则加上 -n <env> 即可

Configuration

.condarc conda configuration file

.condarc 文件可以包含多种设置:

  • conda 从哪里搜索包 (Where conda looks for packages)
  • conda 是否以及如何使用代理服务器 (If and how conda uses a proxy server)
  • 创建新环境时同时包含的默认的包或特征 (Default packages or features to include in new environments)

创建或修改 .condarc 文件, 可以使用命令 conda config 或通过文本编辑器直接操作 .condarc 文件,并将其保存至用户主目录(第一次使用 conda config 时会默认创建);也可将文件放在 conda 软件安装的根目录下,e.g. ~/miniconda3/(即base环境对应的路径),这样该文件中的设置将会覆盖用户主目录下文件的设置

channels

defaults 通道包含来自 repo.continuum.io 的多个通道。其中 main channel 包含了绝大部分新的包,采用新的编译器;free channel 则包含未采用新编译器构建的包,基本上都与 main 中的兼容;此外,还有其他的一些通道包含在内。另外也可以通过在 .condarc 文件中设置 default_channels 来覆盖默认的这些设置
如果仅希望在某个环境中进行通道设置,可以将 .condarc 文件放在该环境的 root directory 下, e.g. ~/miniconda3/envs/test/.condarc,即仅作用于 test 环境;或者在使用 conda config 时使用 --env 参数

参考配置命令:

conda config --add channels conda-forge    # 后写入的通道将会放在最前面
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 --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
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.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --set show_channel_urls yes

.condarc 文件示范

channels:
  - https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
  - https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - conda-forge
  - defaults
show_channel_urls: True

Update conda automatically

当设置为 auto_update_conda: True (default), 每当用户在根环境下更新或者安装某个包,conda 就会自动进行更新。当设置为 False时,只有当运行 conda update 命令是才会进行更新

Show channel URLs (show_channel_urls: True)

下载包或者使用 conda list 命令时,显示完整的 URL;默认为 False

Add pip as Python dependency (add_pip_as_python_dependency)

将 pip, wheel 和 setuptools 作为 Python 的依赖进行安装,确保当 Python 安装时,这三者也同时被安装;默认为 True

Always add packages by default (create_default_packages)

当构建新的环境时,默认同时添加特定的包;可以在创建环境时加上标签 --no-default-packages 来覆盖该设置。默认为不添加任何包

create_default_packages:
  - pip
  - ipython
  - scipy=0.15.0