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.