Conda 基本信息

# Conda 常用命令速查表

Conda 是一个开源的软件包管理系统和环境管理系统,用于安装多个版本的软件包及其依赖关系,并在它们之间轻松切换。

基础命令

# 基础命令

## 版本和帮助
conda --version                 # 查看 conda 版本
conda -V                        # 同上,查看版本简写形式
conda --help                    # 查看 conda 帮助信息
conda <command> --help          # 查看某个具体命令的帮助信息,如 conda create --help

## 更新 Conda
conda update conda              # 更新 conda 自身
conda update --all              # 更新所有包
conda update anaconda           # 更新 anaconda 元数据包

## 配置管理
conda config --show             # 显示 conda 配置信息
conda config --show channels    # 显示当前配置的通道(源)
conda config --add channels <channel>      # 添加源,如:conda config --add channels conda-forge
conda config --remove channels <channel>   # 移除源
conda config --set ssl_verify false        # 关闭 SSL 验证(不推荐)

环境管理

# 环境管理

## 查看环境
conda env list                  # 列出所有环境
conda info --envs               # 同上,列出所有环境
conda info -e                   # 同上,简写形式

## 创建环境
conda create --name <env_name>                     # 创建一个新环境
conda create -n <env_name>                         # 同上,简写形式
conda create -n <env_name> python=3.8              # 创建指定 Python 版本的环境
conda create -n <env_name> python=3.8 numpy pandas # 创建环境并安装包
conda create -n <env_name> --clone <existing_env>  # 克隆已有环境

## 激活/切换环境
conda activate <env_name>       # 激活指定环境
                                # 注:旧版本使用 source activate <env_name> (Linux/Mac) 或 activate <env_name> (Windows)

## 退出环境
conda deactivate                # 退出当前环境,返回基础环境

## 删除环境
conda remove --name <env_name> --all    # 删除指定环境及其所有包
conda env remove -n <env_name>          # 同上,另一种写法

## 重命名环境 (通过克隆和删除实现)
conda create --name <new_name> --clone <old_name>  # 先克隆
conda remove --name <old_name> --all               # 再删除旧环境

包管理

# 包管理

## 查看包
conda list                      # 列出当前环境中的所有包
conda list -n <env_name>        # 列出指定环境中的所有包
conda list <package_name>       # 查看特定包的信息

## 搜索包
conda search <package_name>     # 搜索指定包
conda search --full-name <package_name>  # 精确匹配包名搜索

## 安装包
conda install <package_name>                 # 在当前环境中安装包
conda install -n <env_name> <package_name>   # 在指定环境中安装包
conda install <package1> <package2>          # 安装多个包
conda install <package_name>=<version>       # 安装特定版本的包
conda install -c <channel> <package_name>    # 从特定通道安装包

## 更新包
conda update <package_name>     # 更新特定包
conda update --all              # 更新当前环境的所有包

## 卸载包
conda remove <package_name>                 # 从当前环境移除包
conda remove -n <env_name> <package_name>   # 从指定环境移除包
conda uninstall <package_name>              # 同 remove,卸载包的另一种写法

环境导出与导入

# 环境导出与导入

## 导出环境
conda env export > environment.yml                # 导出当前环境到 YAML 文件
conda env export -n <env_name> > environment.yml  # 导出指定环境到 YAML 文件
conda list --explicit > spec-file.txt             # 导出精确的包版本信息(包含 URL)

## 从 YAML 文件创建环境
conda env create -f environment.yml              # 从 YAML 文件创建环境

## 从 spec 文件还原环境 (常用于跨平台迁移)
conda create --name <env_name> --file spec-file.txt  # 从 spec 文件创建环境

## 导出仅关键包信息 (不含依赖)
conda env export --from-history > environment-simple.yml  # 仅导出通过 conda install 手动安装的包

清理与维护

# 清理与维护

## 清理缓存
conda clean -a                  # 清理所有缓存(包、索引、未使用的包和tar包)
conda clean --all               # 同上
conda clean -p                  # 仅清理未使用的包
conda clean -t                  # 仅清理tar包
conda clean -i                  # 仅清理索引缓存

## 验证 Conda 安装
conda verify                    # 验证 conda 安装是否正确

与 pip 集成

# 与 pip 集成

## pip 在 conda 环境中使用
pip install <package_name>      # 在当前环境中使用 pip 安装包
pip list                        # 列出 pip 安装的包
pip freeze > requirements.txt   # 导出 pip 安装的包列表

## pip 和 conda 的区别
# 1. pip 只能安装 Python 包,conda 可以安装任何语言的包
# 2. pip 不管理环境,conda 有环境管理功能
# 3. conda 可以处理复杂的依赖关系,尤其对科学计算库更友好
# 4. pip 使用 PyPI 仓库,conda 主要使用 Anaconda 仓库和 conda-forge 等渠道

常见问题与解决方案

# 常见问题与解决方案

## 解决包冲突
conda install -c conda-forge <package>  # 尝试从 conda-forge 安装包
conda update --all                      # 更新所有包可能解决一些冲突

## 环境恢复
conda install --revision=REVNUM         # 恢复环境到之前的修订版本

## 跨平台环境迁移
# 方法一:使用 conda-pack (需要先安装: pip install conda-pack)
conda pack -n <env_name> -o environment.tar.gz   # 打包环境
# 在目标机器上:
mkdir -p <env_name>
tar -xzf environment.tar.gz -C <env_name>        # 解压
source <env_name>/bin/activate                   # 激活(Linux/Mac)
<env_name>\Scripts\activate                      # 激活(Windows)
conda-unpack                                     # 完成安装

## 加速下载
# 使用国内镜像源加速,例如清华源:
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/conda-forge/
conda config --set show_channel_urls yes

高级用法

# 高级用法

## 条件包安装
conda install 'numpy[version=">=1.18,<1.20"]'    # 安装特定版本范围的包

## 创建软链接
conda develop <path/to/local/package>            # 在开发模式下安装本地包

## 离线安装
conda install --offline <package>                # 离线模式安装已经下载的包

## 并行下载
conda config --set parallel_download True        # 启用并行下载
conda config --set parallel_download_workers 4   # 设置并行下载工作线程数

最佳实践

# 最佳实践

1. 为每个项目创建独立的环境
2. 使用环境文件管理项目依赖
3. 定期更新 conda 和环境中的包
4. 避免在 base 环境中安装过多包
5. 为大型科学计算库优先使用 conda 安装而非 pip
6. 在同一环境中尽量避免混用 conda 和 pip
7. 使用 conda-forge 通道获取更多最新包
8. 记录环境修改,便于版本控制和复现

Q.E.D.


夜阑卧听风吹雨,铁马冰河入梦来。