如果您正在通过conda管理Python开发环境,我们建议您先阅读下面的文章。
下面的文章简要回顾了这些内容,重点整理了实际使用中的conda环境创建、删除、复制和迁移方法的实用指南。
1. Anaconda vs Miniconda 一句话总结
可以总结如下:
-
Anaconda:
→ 一次性安装经常用于数据科学和机器学习的包的综合包分发版 -
Miniconda:
→ 仅提供conda环境/包管理功能,
开发者根据需要自行选择和安装包的迷你分发版
由于我更偏好“轻松开始,仅在必要时增加包的风格”,因此,我建议尽量安装Miniconda并在其上搭建环境。
-
更少占用磁盘空间
-
更新更少麻烦
-
仅安装每个项目所需的内容,环境更整洁的优点。
2. 快速了解conda环境概念
conda的“环境(environment)”可以简单理解为按项目隔离的Python/包集合。
-
env A: Python 3.10 + Django 4 + 特定库版本 -
env B: Python 3.11 + FastAPI + 完全不同的库组合
这样隔离不同版本之间互相干扰是关键。
关于环境的基本常用命令如下:
# 查看当前安装的conda环境列表
conda env list
# 或者
conda info --envs
3. 创建conda环境
3.1 创建最基本的环境
conda create -n myenv python=3.12
-
-n myenv: 指定环境名称为myenv -
python=3.12: 使用Python 3.12版本
环境创建后:
conda activate myenv # 激活环境
conda deactivate # 取消激活环境
3.2 创建同时安装常用包
conda create -n myenv python=3.12 numpy pandas matplotlib
将在已安装Miniconda的默认通道中一起安装上述包的新环境被创建。
之后:
conda activate myenv
conda install scikit-learn
# 或者
pip install requests
可以在需要时逐步添加包。
4. 删除conda环境
不再使用的环境应果断删除。
(conda环境相当占用磁盘空间。)
# 删除myenv环境
conda env remove -n myenv
删除后确认:
conda env list
myenv如果从列表中消失,说明正常。
5. 复制conda环境 (clone)
当您想要创建“设置类似但名称不同的环境”时,非常有用,可以用于实验性安装多个包的环境。
# 以existing-env为基准创建名为new-env的复制环境
conda create -n new-env --clone existing-env
-
也会复制包版本,因此,
-
“保持原环境不变,想进行新的实验时”经常使用的模式。
复制后:
conda activate new-env
可以检查是否正常工作。
6. 迁移conda环境 (export / import)
当您想将环境移到另一台PC或服务器时,
将环境导出为文件后(import/export),根据该文件创建新环境是最常见的方式。
6.1 导出环境(export) – 生成YAML文件
# 将myenv环境导出为env.yml文件
conda env export -n myenv > env.yml
这个env.yml文件中包括:
-
环境名称
-
正在使用的通道信息
-
安装的包及其版本
这些记录在其中。
如果想仅导出基于历史的最小列表
如果想仅记录“我自己安装的包”,而不是完整的列表(已包含依赖),可以:
conda env export -n myenv --from-history > env-min.yml
这样创建后,当在其他环境中create时,
所需的依赖会由conda自动解决。
6.2 在其他地方(或同一台机器)创建环境
在另一台PC、服务器,或者同一机器的新位置:
conda env create -f env.yml
这样根据env.yml中定义的名称和包版本将创建环境。
-
如果
env.yml中写了name: myenv,则将以该名称创建 -
如果想更改名称,可以直接编辑
env.yml文件中的name:部分,然后执行
例如,将env.yml的name: myenv更改为name: myenv-dev后:
conda env create -f env.yml
conda activate myenv-dev
可以获得相同配置但名称不同的环境。
7. 常用的conda模式总结
在基于Miniconda搭建环境时,整理了一些常用的有用模式。
-
每个项目各自一个环境
-
可以根据项目名称命名环境,例如
proj-a-env,proj-b-env -
可以便于版本管理而不互相冲突。
-
-
环境最小安装后在需要时再扩展
-
开始时仅安装
python+ 几个基本包 -
在开发中,随需要扩展使用
conda install或pip install
→ 这与Miniconda的简约哲学相符合。
-
-
重要环境定期导出
-
在发布时、部署前:
bash conda env export -n proj-a-env --from-history > proj-a-env.yml -
将此文件提交到版本控制中,
使团队成员可以轻松复现相同的环境。
-
-
在大规模更改前使用clone备份
-
在进行大规模包升级或更改Python版本之前:
bash conda create -n proj-a-backup --clone proj-a-env -
如出现问题,可以快速回退到备份环境。
-

总结:轻松开始,必要时扩展
总结起来选择非常简单。
-
Anaconda是一种一次性安装“可能需要的包”方式
-
Miniconda是一种“真正需要的内容随时安装”的轻量方式
在项目对Python版本和包组合需求各不相同的情况下,
Miniconda + 管理良好的conda环境组合要灵活得多。
环境可以:
-
创建(
conda create) -
激活(
conda activate) -
删除(
conda env remove) -
复制(
conda create --clone) -
迁移(
conda env export/conda env create)
如果掌握了这些,开始新项目时就能够
在“这次要删掉什么,这次要重新安装什么?”的困扰中获得很大的自由。
未来在开始新项目时可以:
-
基于Miniconda创造一个新环境
-
并在其中安装真正需要的包。
-
如果对环境配置满意,请导出为
env.yml,
在下一个项目中稍作修改即可复用。
一旦掌握了这个模式,conda环境管理将不再是一件烦琐的事情,而是成为“保持项目整洁的良好习惯”。
目前没有评论。