1. 引言
很多刚接触 Python 的朋友都会遇到这样的困惑:明明在自己电脑上跑得好好的代码,换了一台机器就报错;或者项目 A 需要 Python 3.8,项目 B 需要 Python 3.11,装来装去把系统环境搞得一团糟。这时候,conda 就是解决这些问题的利器。
2. 什么是 conda
conda 是一个开源的包管理系统和环境管理系统,最初由 Anaconda 公司开发,用于简化 Python 及相关科学计算库的安装与管理。它不仅能管理 Python 包,还能管理 Python 版本本身,甚至能管理非 Python 的依赖库(如 C/C++ 库、CUDA 等)。≤199 人企业、个人爱好者、高校、非营利组织:可以免费使用 Anaconda Individual Edition,访问官方 default 源,不需要买商业许可Anaconda。
3. 为什么要用 conda
3.1 环境隔离,互不干扰
conda 最核心的价值在于环境隔离。你可以为每个项目创建独立的虚拟环境,不同环境之间互不影响:
# 创建 Python 3.11 的环境conda create-nproject_apython=3.11# 创建 Python 3.8 的环境conda create-nproject_bpython=3.8这样,项目 A 升级依赖不会破坏项目 B 的运行环境,彻底告别「装一个包把另一个项目搞挂」的噩梦。
3.2 解决依赖冲突
Python 生态中依赖冲突非常常见:库 X 需要 numpy<2.0,库 Y 需要 numpy>=2.0。conda 通过独立的 solver 自动解析依赖关系,帮你找到兼容的版本组合,避免手动排查依赖地狱。
3.3 跨平台一致性
conda 在 Windows、macOS、Linux 上行为一致。通过environment.yml文件,你可以把整个环境配置分享给团队或部署到服务器:
name:my_projectchannels:-conda-forgedependencies:-python=3.11-numpy-pandas-pip其他人只需一条命令即可复现完全相同的环境:
condaenvcreate-fenvironment.yml3.4 科学计算生态友好
conda 对科学计算库(NumPy、SciPy、Pandas、PyTorch、TensorFlow 等)支持极佳,能直接安装预编译的二进制包,避免从源码编译带来的漫长等待和兼容性问题。
3.5 管理非 Python 依赖
很多项目不仅依赖 Python 包,还依赖系统级的 C/C++ 库。conda 可以一并管理这些非 Python 依赖,确保它们在各个平台上都能正确安装。
4. conda 与 pip、virtualenv 的对比
| 特性 | conda | pip + virtualenv |
|---|---|---|
| 管理 Python 版本 | ✅ 支持 | ❌ 不支持(需另装 pyenv) |
| 管理非 Python 依赖 | ✅ 支持 | ❌ 不支持 |
| 依赖解析 | 内置 solver,自动解决冲突 | 依赖 pip 的解析,冲突时需手动处理 |
| 环境隔离 | ✅ 原生支持 | ✅ 通过 virtualenv 支持 |
| 预编译二进制包 | ✅ 丰富 | 部分依赖需源码编译 |
| 适用场景 | 科学计算、数据科学、机器学习 | 通用 Web 开发、轻量项目 |
5. conda 的安装与配置
5.1 安装 conda
conda 分为 Anaconda 和 Miniconda 两种发行版:
- Anaconda:包含大量常用科学计算库的集合版本,开箱即用,但体积较大。
- Miniconda:精简版本,只包含 conda、pip、zlib、python 以及它们所需的包,其余依赖通过
conda install命令自行安装。
下载地址:
- Miniconda 官网:https://conda.io/miniconda.html
- Anaconda 官网:https://www.anaconda.com/download
点击安装即可,不需要另外安装 Python 运行环境。安装过程中出现 Advanced options 选项时:
- 第一个选项:将 Anaconda 的路径加入环境变量;
- 第二个选项:默认将 conda 安装的 Python 定为系统使用的默认版本。
5.2 配置环境变量与初始化
安装完成后,以管理员身份重新打开 cmd,执行初始化命令:
conda init初始化完成后,以管理员身份重新启动 cmd,使配置生效。
5.3 添加国内镜像源
国内访问官方源较慢,可添加国内大学镜像源加速下载:
conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config--addchannels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ conda config--addchannels https://mirrors.bfsu.edu.cn/anaconda/cloud/bioconda/ conda config--addchannels https://mirrors.bfsu.edu.cn/anaconda/cloud/conda-forge/ conda config--addchannels https://mirrors.bfsu.edu.cn/anaconda/pkgs/free/ conda config--addchannels https://mirrors.bfsu.edu.cn/anaconda/pkgs/main/ conda config--addchannels https://mirrors.bfsu.edu.cn/anaconda/pkgs/r/目前国内提供 conda 镜像的大学:
- 清华大学:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
- 北京外国语大学:https://mirrors.bfsu.edu.cn/help/anaconda/
- 南京邮电大学:https://mirrors.njupt.edu.cn/
- 南京大学:http://mirrors.nju.edu.cn/
- 重庆邮电大学:http://mirror.cqupt.edu.cn/
- 上海交通大学:https://mirror.sjtu.edu.cn/
- 哈尔滨工业大学:http://mirrors.hit.edu.cn/#/home(目测哈工大的镜像同步最勤最新)
查看已添加的 channels:
conda config--showchannels恢复默认镜像源:
conda config --remove-key channels6. 环境管理
6.1 创建环境
创建 Python 版本为 X.X、名字为 env_name 的虚拟环境:
conda create-nenv_myfirst01python=3.12
因为我已经执行过,所以提示是否移除当前存在的环境。
创建完毕后env_name 文件可以在 Anaconda 安装目录的 envs 文件夹下找到。
6.2 查看环境
condaenvlist# 或者conda info--envs6.3 删除环境
conda remove-nenv_name--allcondaenvremove-nenv_name6.4 重命名环境
conda 没有直接的重命名命令,可通过克隆实现(将 --clone 后面的环境重命名成 -n 后面的名字):
conda create-ntorch--clonepy3# 将 py3 重命名为 torch6.5 进入与退出环境
创建完成环境之后,系统会提示如何进入和退出环境:
conda init# 初始化,以管理员重启 cmdconda activate env_myfirst01# 进入环境conda deactivate# 退出环境7. 在 conda 环境内使用 pip 安装
用命令查找版本信息:
conda search numpy在 Anaconda 下用 pip 装包的原因:尽管在 Anaconda 下我们可以很方便地使用conda install安装依赖,但 Anaconda 本身只提供部分包,远没有 pip 提供的包多。有时 conda 无法安装我们需要的包,就需要用 pip 将其装到 conda 环境里。
首先进入指定的环境中,然后再通过 pip 安装即可:
conda activate env_name pipinstallpackage_name8. 卸载 conda
如需彻底卸载 conda,可删除 Anaconda/Miniconda 安装目录,并清理环境变量中的相关配置。
9. 环境迁移
将要迁移的环境打包:
conda pack-n虚拟环境名称-oenvironment.tar.gz如果报错No command 'conda pack',尝试使用:
condainstall-cconda-forge conda-pack复制压缩文件到新的电脑,进入 conda 的安装目录:
/anaconda(或者miniconda)/envs/对于 Ubuntu,可以通过whereis conda查看 conda 的安装路径,然后 cd 到 conda 的安装路径:
mkdirenvironment# 解压 conda 环境tar-xzvfenvironment.tar.gz-Cenvironment使用conda env list查看虚拟环境,进入迁移的环境内,通过pip list查看迁移前后包的安装情况。
10. 使用 Mamba 加速安装
Mamba 是 Conda 的一个高性能替代品,能够更快地解决依赖关系。可以通过以下命令安装 Mamba:
condainstallmamba-nbase-cconda-forge然后使用 Mamba 安装包:
mambainstallpackage_name11. IDEA 集成 conda
在 IntelliJ IDEA 中,可以在项目解释器设置里选择 conda 环境作为 Python 解释器,从而在 IDE 中直接使用 conda 管理的虚拟环境进行开发调试。