环境管理系统:Conda(一)

Conda 是一个开源的包管理系统和环境管理系统 ,最初为 Python 设计,但现在也支持 R、Ruby、Lua 等多种语言。核心价值在于:在同一台电脑上,为不同项目创建相互隔离的运行环境,避免依赖冲突。

一、为什么需要 Conda?

1. 没有 Conda 时的困境

假设你有两个项目:

  • 项目 A:需要 Python 3.8 + TensorFlow 1.x

  • 项目 B:需要 Python 3.11 + TensorFlow 2.x

如果都装在同一个 Python 环境里,TensorFlow 的两个版本会直接冲突,无法共存。

2. Conda 的解决

每个项目拥有独立的"小房间"(环境),互不干扰。

二、Conda介绍

概念 说明
环境(Environment) 一个独立的"小房间",包含特定版本的 Python 和所有依赖包
包(Package) 需要安装的软件库,如 numpy、pandas、tensorflow
通道(Channel) 包的来源。默认是 defaults,社区维护的是 conda-forge
base 环境 Conda 安装后默认进入的基础环境,不建议在里面装项目依赖

三、安装 Conda

Conda 有两个主流发行版:Anaconda (完整版,包含大量预装包,体积大)和 Miniconda(精简版,只包含 Conda 和 Python,体积小)。

推荐使用 Miniconda,按需安装,更轻量。

下载与安装

复制代码
# Linux/macOS
# 1. 下载 Miniconda 安装包(以 Linux x86_64 为例)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 2. 运行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh

# 3. 按照提示完成安装,安装完成后重新打开终端
# 4. 验证安装
conda --version

Windows 用户:从官网下载 Miniconda 安装包(.exe),双击安装,勾选"Add to PATH"即可。

四、环境管理(最常用的操作)

1. 查看环境

复制代码
# 列出所有环境
conda env list
# 或
conda info --envs

2. 创建环境

复制代码
# 创建名为 myenv 的环境,指定 Python 版本
conda create -n myenv python=3.9

# 创建环境时同时安装包
conda create -n myenv python=3.9 numpy pandas

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

3. 激活与退出环境

复制代码
# 激活环境(进入"小房间")
conda activate myenv

# 退出环境(回到 base)
conda deactivate

4. 删除环境

复制代码
# 删除整个环境
conda remove -n myenv --all

5. 克隆环境(备份/测试用)

复制代码
# 完整复制一个环境
conda create --name new_env --clone old_env

五、包管理

1. 安装包

复制代码
# 在当前环境安装包
conda install numpy

# 指定版本
conda install numpy=1.21

# 从 conda-forge 通道安装(社区维护,更新更快)
conda install -c conda-forge numpy

# 安装多个包
conda install numpy pandas matplotlib

2. 查看已安装的包

复制代码
conda list

3. 更新包

复制代码
# 更新单个包
conda update numpy

# 更新所有包
conda update --all

4. 卸载包

复制代码
conda remove numpy

六、Conda 与 pip

对比 Conda pip
包来源 Conda 频道 PyPI
语言支持 多语言(Python、R、C++) 仅 Python
非 Python 依赖 支持 不支持
环境管理 内置 需要 venv

七、环境导出与分享(团队协作必备)

1. 导出环境配置

复制代码
# 方式一:导出完整环境(包含所有依赖,跨平台兼容性差)
conda env export > environment.yml

# 方式二:只导出你手动安装的包(推荐,跨平台兼容性好)
conda env export --from-history > environment.yml

2. 从配置文件复现环境

复制代码
conda env create -f environment.yml

3. 更新环境

复制代码
conda env update --file environment.yml --prune

八、常用配置技巧

1. 配置国内镜像源(加速下载)

复制代码
# 配置清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes

2. 使用 mamba 加速(推荐)

mamba 是一个用 C++ 重写的 Conda 替代品,速度极快。

复制代码
# 在 base 环境安装 mamba
conda install -n base mamba -c conda-forge

# 之后用 mamba 替代 conda 命令
mamba create -n myenv python=3.9 numpy pandas

3. 清理缓存

复制代码
# 清理所有缓存
conda clean --all

# 只清理包缓存
conda clean --packages

九、注意事项

问题 解决方案
conda 命令找不到 重新打开终端,或手动将 Conda 路径加入 PATH
环境创建慢 配置国内镜像源,或使用 mamba
依赖冲突 用 mamba 解决,或创建新环境
conda activate 报错 运行 conda init 初始化 shell
包版本不对 指定版本号:conda install numpy=1.21
磁盘空间不足 运行 conda clean --all 清理缓存

其他:

  1. 不要在 base 环境装项目依赖,为每个项目创建独立环境

  2. Conda 管环境,pip 装包,两者可以配合使用

  3. 导出环境用 --from-history,跨平台兼容性更好

  4. 用 mamba 加速,体验会好很多

  5. 配置国内镜像源,下载速度会快很多

相关推荐
飞Link6 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗6 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
在世修行7 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
On The Road :8 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静8 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静9 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗9 小时前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真9 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指111010 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents
云和数据.ChenGuang11 小时前
Python 常见特殊方法详解:__new__、__init__、__del__、__str__、__repr__ 与 __getattribute__
开发语言·人工智能·python·1024程序员节