环境管理系统: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. 配置国内镜像源,下载速度会快很多

相关推荐
Evan_Lai10 小时前
(一)独热编码、标签编码、目标编码、序数编码详解
python·机器学习
用户76241175670510 小时前
第二章 Python语言基础
python
129Lab10 小时前
BMS 核心算法:SOC 估算从安时积分到 LSTM-UKF 串级融合的 30 年演进(附 Python 实现)
python·算法·lstm·python3.11·bms·soc估算
129Lab11 小时前
电池热管理仿真的AI加速:用Python+PINN物理信息神经网络替代传统CFD的可行性探索
pytorch·python·cfd·pinn·物理信息神经网络·仿真加速·电池热管理
用户2986985301411 小时前
Python 中 HTML 转 PDF 的实现方法
python·html·api
答案是你11 小时前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测
2601_9628857211 小时前
AlphaFeed 支持哪些 K 线周期?period参数怎么传?
前端·数据库·python
老歌老听老掉牙11 小时前
基于 Python 的顺次文本拼接:以 MCD 数控文件为例
python·数控·mcd
朝朝辞暮i11 小时前
VLA 系统学习第 7 课:loss.backward() 到底做了什么?——从计算图到反向传播
人工智能·python·深度学习·神经网络·vla
外收内放11 小时前
Python基础语法练习题(53-54)
python·学习