1. 引言很多刚接触 Python 的朋友都会遇到这样的困惑明明在自己电脑上跑得好好的代码换了一台机器就报错或者项目 A 需要 Python 3.8项目 B 需要 Python 3.11装来装去把系统环境搞得一团糟。这时候conda 就是解决这些问题的利器。2. 什么是 condaconda 是一个开源的包管理系统和环境管理系统最初由 Anaconda 公司开发用于简化 Python 及相关科学计算库的安装与管理。它不仅能管理 Python 包还能管理 Python 版本本身甚至能管理非 Python 的依赖库如 C/C 库、CUDA 等。≤199 人企业、个人爱好者、高校、非营利组织可以免费使用 Anaconda Individual Edition访问官方 default 源不需要买商业许可Anaconda。3. 为什么要用 conda3.1 环境隔离互不干扰conda 最核心的价值在于环境隔离。你可以为每个项目创建独立的虚拟环境不同环境之间互不影响# 创建 Python 3.11 的环境conda create-nproject_apython3.11# 创建 Python 3.8 的环境conda create-nproject_bpython3.8这样项目 A 升级依赖不会破坏项目 B 的运行环境彻底告别「装一个包把另一个项目搞挂」的噩梦。3.2 解决依赖冲突Python 生态中依赖冲突非常常见库 X 需要 numpy2.0库 Y 需要 numpy2.0。conda 通过独立的 solver 自动解析依赖关系帮你找到兼容的版本组合避免手动排查依赖地狱。3.3 跨平台一致性conda 在 Windows、macOS、Linux 上行为一致。通过environment.yml文件你可以把整个环境配置分享给团队或部署到服务器name:my_projectchannels:-conda-forgedependencies:-python3.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 的对比特性condapip virtualenv管理 Python 版本✅ 支持❌ 不支持需另装 pyenv管理非 Python 依赖✅ 支持❌ 不支持依赖解析内置 solver自动解决冲突依赖 pip 的解析冲突时需手动处理环境隔离✅ 原生支持✅ 通过 virtualenv 支持预编译二进制包✅ 丰富部分依赖需源码编译适用场景科学计算、数据科学、机器学习通用 Web 开发、轻量项目5. conda 的安装与配置5.1 安装 condaconda 分为 Anaconda 和 Miniconda 两种发行版Anaconda包含大量常用科学计算库的集合版本开箱即用但体积较大。Miniconda精简版本只包含 conda、pip、zlib、python 以及它们所需的包其余依赖通过conda install命令自行安装。下载地址Miniconda 官网https://conda.io/miniconda.htmlAnaconda 官网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目测哈工大的镜像同步最勤最新查看已添加的 channelsconda config--showchannels恢复默认镜像源conda config --remove-key channels6. 环境管理6.1 创建环境创建 Python 版本为 X.X、名字为 env_name 的虚拟环境conda create-nenv_myfirst01python3.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 的一个高性能替代品能够更快地解决依赖关系。可以通过以下命令安装 Mambacondainstallmamba-nbase-cconda-forge然后使用 Mamba 安装包mambainstallpackage_name11. IDEA 集成 conda在 IntelliJ IDEA 中可以在项目解释器设置里选择 conda 环境作为 Python 解释器从而在 IDE 中直接使用 conda 管理的虚拟环境进行开发调试。
阅读完成 · 觉得有帮助?