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

相关推荐
计算机源码社1 小时前
基于K-Means聚类的新生儿败血症临床分型与可视化分析系统 基于数据挖掘的新生儿败血症生命体征时序走势与关联性可视化研究
大数据·hadoop·python·数据挖掘·数据分析·spark·毕业设计
一阵寒风1 小时前
用 AI 把PCB制前工程CAM无人值守输出系统做出来
python·ai编程·pcb工艺
SamChan902 小时前
Python 处理小语种 PDF 的编码坑:重音字符、连字与 (cid:xx) 乱码的解决方案
python·ai·pdf·机器翻译
量化吞吐机2 小时前
会写代码之后,量化学习还要补上交易判断
人工智能·python
lie..2 小时前
30天从零开始学AI应用开发(Day 1):机器学习、深度学习、大模型,到底是个啥关系
人工智能·python·大模型
Ivanqhz2 小时前
Unigram 算法
开发语言·人工智能·python·深度学习·mlir
冯一川3 小时前
Python 实现与 Ollama 运行的模型对话
人工智能·python
车间溜盖子3 小时前
TE(TEC 半导体制冷片)Qc / Qh 冷热面基础定义
python
天赐范式3 小时前
天赐范式第168天:让子代开始从父代肩膀上演化——跨代β传递demo与完整代码
python·数字生命·天赐范式·动态运行时·跨代β传递·可继承性验证·digitallife