Conda 是一个开源的软件包管理和环境管理系统,其主要特点有:
- 跨平台:支持 Windows、macOS 和 Linux。
- 环境管理:可以创建、导出、列出、删除和更新环境。
- 包管理:安装、更新和管理软件包。
- 支持多种编程语言:不仅限于 Python,还支持 R、Ruby、Lua、Scala、Java 等。
参考:Conda 指令文档
下面列出常用指令。
1. 环境管理
激活和退出
conda activate <env_name> # 激活环境
conda deactivate # 退出环境
创建
conda create --name <env_name> python=3.8 # 创建新环境,安装 python3.8
conda create -n <env_name> python=3.8 numpy pandas # 创建新环境,安装 python3.8 和多个包
conda create -n <env_name> --clone <cloned_env> # 克隆环境
conda create -n <env_name> --yes python=3.8 # 创建环境并使用 --yes 选项自动确认
conda env create --file environment.yml # 从文件创建
conda env create -f environment.yml --name <env_name> # 从文件创建,并覆盖环境名称
conda env create -f requirements.txt -n <env_name> # 从文件创建
删除
conda remove --name <env_name> --all # 删除环境本身和所有包
conda remove -n <env_name> --all --keep-env # 删除环境中所有包,但保留环境
修改
conda rename --name <old_env> <new_env> # 重命名环境
conda rename --prefix path/to/old_env <new_env> # 重命名指定路径的环境
conda env update # 更新当前环境
conda env update -n=<env_name> # 更新指定环境
conda env update -f=/path/to/environment.yml # 根据指定文件更新
conda env update --name=<env_name> --file=environment.yml # 根据指定文件更新指定环境
查看
conda env list # 列出所有环境
conda info --envs # 列出所有环境
conda info --system # 列出环境变量
conda info --unsafe-channels # 列出已公开tokens的频道列表
conda info --verbose # 列出环境、通道、平台等各种系统和配置细节
conda info --json # 以json格式输出报告
conda compare environment.yml # 比较当前激活环境与文件配置
conda compare --name <env_name> environment.yml # 比较指定环境与文件配置
conda doctor # 显示当前激活环境的健康状况
导出
conda export # 导出当前激活环境的信息,未激活则是 base
conda export --name <env_name> # 导出指定环境的信息
conda export --prefix </path/to/env> # 导出指定路径的环境信息
conda export --name <env_name> --file environment.yml # 导出指定环境信息到指定文件,后缀也可以是 yaml
conda env export # 等同于 conda export
2. 包管理
安装
conda install <package_name> # 安装包到当前激活环境
conda install -n <env_name> <package_name> # 安装包到指定环境
conda install <package_name>=1.2.3 # 安装特定版本
conda install --channel conda-forge <package_name> # 从特定通道安装
conda install --use-local /path/to/package.tar.bz2 # 安装本地包
conda install --strict-channel-priority <package_name> # 严格遵守通道优先级
conda install --no-channel-priority <package_name> # 忽略通道优先级,包版本优先于通道优先级
conda install --force-reinstall <package_name> # 强制重新安装包
删除
conda remove <package_name> # 删除当前激活环境的包
conda remove --name <env_name> <package_name> # 删除指定环境的包
更新
conda update <package_name> # 更新当前激活环境的包
conda update --all # 更新所有包
conda remove --name <env_name> <package_name> # 更新指定环境的包
查询
conda list # 列出当前环境已安装的包
conda list --reverse # 按顺序列出
conda list ^py # 使用正则表达式列出以"py"开头的包,可以是任意字符
conda list --export > package-list.txt # 输出包列表,此输出可由conda create--file使用
conda search <package_name> # 搜索可用包
conda search '*py*' # 搜索包含"py"的包,也可以是任意字符,单双引号都可以
conda search 'numpy>=1.25' # 搜索包的特定版本
conda search conda-forge::numpy # 搜索特定通道的包
conda search "conda-forge::numpy>=1.25" # 搜索特定通道的包的特定版本
3. 系统和配置
初始化
conda init # 添加 Conda 在 ~/.bashrc 中的初始化代码
conda init --reverse # 移除自动初始化
信息查询
conda --version # 查看 Conda 版本
conda notices # 查看所有默认通道的公告通知
conda notices --channel <channel_name> # 查看指定通道的公告通知
conda notices -c conda-forge # 查看 conda-forge 通道的通知
配置管理
conda config --show # 查看当前配置
conda config --show-sources # 查看所有已识别的配置文件源
conda config --show channels # 查看包源通道
conda config --describe # 列出所有可用配置选项的描述
conda config --describe channel_priority # 列出特定配置选项的描述
conda config --add channels <new_channel> # 添加包源通道
conda config --append channels conda-forge # 将 conda-forge 通道添加到通道列表的末尾
conda config --set channel_priority strict # 设置通道优先级
conda config --set verbosity 3 --env # 设置当前激活环境输出详细程度
conda config --set auto_activate_base false # 关闭自动激活base
conda config --set auto_activate_base true # 开启自动激活base
环境变量
conda env config vars list # 列出当前激活环境的环境变量
conda env config vars set MY_VAR=weee # 设置环境变量
conda env config vars unset MY_VAR # 取消设置环境变量
清理
conda clean --all # 移除索引缓存、锁文件、未使用的缓存包、压缩包和日志文件
conda clean --index-cache # 移除索引缓存
conda clean --packages # 移除可写包缓存中未使用的包
conda clean --tarballs # 移除缓存的包压缩文件
conda clean --tempfiles # 移除之前由于正在使用而无法删除的临时文件
conda clean --logfiles # 移除日志文件
conda clean --force-pkgs-dirs # 移除所有可写包缓存,不包含在 --all 中
运行
conda run --name <env_name> python --version # 使用指定环境查看 Python 版本,无需激活
conda run -n <env_name> python script.py # 使用指定环境运行 Python 脚本
conda run -n <env_name> --cwd /path/to/project python script.py # 使用指定环境,在指定目录下运行
附:常用通道
defaults
: 默认通道,包含大量常用的科学计算和数据分析包conda-forge
: 社区通道,通常比 defaults 通道更新更快,包含许多 defaults 通道中没有的包pytorch
: 用于安装 PyTorch 及其相关包r
: 用于 R 语言和相关包的通道nvidia
: NVIDIA 提供的 GPU 加速库和工具menpo
: 计算机视觉和图像处理相关的包