Conda 环境依赖导出指南:四种常用方法总结
在团队协作、项目部署或开源项目中,经常需要把当前开发环境分享给别人。对于 AI 项目来说,环境配置往往比代码更容易出问题,因此学会正确导出依赖非常重要。
本文总结几种常用的 Conda 环境导出方式,以及不同场景下应该如何选择。
一、导出完整 Conda 环境(推荐)
这是 Conda 官方推荐的方式,也是最适合团队协作和服务器部署的方法。
导出
先进入需要导出的环境:
bash
conda activate your_env
然后执行:
bash
conda env export --no-builds > environment.yml
例如:
bash
conda activate ai-service
conda env export --no-builds > environment.yml
生成的 environment.yml 大致如下:
yaml
name: ai-service
channels:
- defaults
dependencies:
- python=3.11
- numpy
- pytorch
- pip
- pip:
- fastapi==0.116.0
- langchain==0.3.0
- openai==1.100.0
恢复环境:
bash
conda env create -f environment.yml
如果环境已经存在,可以更新:
bash
conda env update -f environment.yml
为什么推荐使用 --no-builds
如果直接执行:
bash
conda env export
生成的文件通常会包含大量 Build 信息,例如:
yaml
numpy=2.1.3=py311h...
甚至还会包含本机路径:
yaml
prefix: C:\Users\xxx\miniconda3\envs\ai-service
这些信息对于别人来说没有意义,还可能导致跨平台恢复失败。
因此推荐使用:
bash
conda env export --no-builds
它会保留版本号,但去掉 Build 信息,更适合部署和团队协作。
二、只导出自己安装的 Conda 包
如果想导出一个更加简洁的环境,可以使用:
bash
conda env export --from-history > environment.yml
例如:
yaml
dependencies:
- python=3.11
- pytorch
- fastapi
它不会导出 Conda 自动安装的大量依赖。
这种方式更适合:
- 开源项目
- GitHub 项目
- 教程示例
不过需要注意:
由于没有导出所有依赖,不同平台恢复出来的环境可能存在一定差异。
三、导出 pip 依赖
很多 AI 项目除了 Conda 包之外,还安装了大量 pip 包。
例如:
- FastAPI
- LangChain
- Transformers
- OpenAI SDK
- Sentence Transformers
可以使用:
bash
pip freeze > requirements.txt
生成:
text
fastapi==0.116.0
langchain==0.3.0
openai==1.100.0
transformers==4.55.0
sentence-transformers==5.0.0
恢复依赖:
bash
pip install -r requirements.txt
查看当前 pip 安装了哪些库
bash
pip list
例如:
text
Package Version
------------ -------
fastapi 0.116.0
langchain 0.3.0
openai 1.100.0
四、导出 Conda 包列表
还可以直接导出 Conda 包列表:
bash
conda list --export > package-list.txt
生成:
text
numpy=2.1.3
python=3.11.8
pytorch=2.7.0
恢复:
bash
conda install --file package-list.txt
这种方式使用较少,一般更推荐使用 environment.yml。
五、查看当前环境信息
查看所有环境
bash
conda env list
例如:
text
base
ai-service *
test
带 * 表示当前激活的环境。
查看当前环境安装的 Conda 包
bash
conda list
查看当前环境安装的 pip 包
bash
pip list
六、AI 项目推荐的导出方式
大多数 AI 项目都会同时使用 Conda 和 pip。
例如:
Conda
├── Python
├── PyTorch
├── CUDA
├── NumPy
└── SciPy
pip
├── FastAPI
├── LangChain
├── OpenAI
├── Transformers
├── Sentence Transformers
└── Uvicorn
推荐导出:
bash
conda env export --no-builds > environment.yml
生成的文件会自动包含 pip 安装的依赖,例如:
yaml
dependencies:
- python=3.11
- pytorch
- pip
- pip:
- fastapi==0.116.0
- langchain==0.3.0
- openai==1.100.0
恢复时:
bash
conda env create -f environment.yml
Conda 会先安装 Conda 包,再自动安装 pip 部分的依赖。
七、项目中建议保留哪些文件
推荐每个 Python/AI 项目至少保留下面三个文件:
text
project/
├── environment.yml
├── requirements.txt
└── README.md
其中:
environment.yml:保存 Conda 环境(Python、PyTorch、CUDA 等)requirements.txt:保存 pip 安装的第三方库README.md:记录环境创建、项目启动和运行方式
这样无论是团队协作、服务器部署,还是后续维护,都能够快速恢复开发环境。
八、常用命令汇总
| 功能 | 命令 |
|---|---|
| 导出完整 Conda 环境 | conda env export --no-builds > environment.yml |
| 导出手动安装的 Conda 包 | conda env export --from-history > environment.yml |
| 导出 pip 依赖 | pip freeze > requirements.txt |
| 查看 Conda 包 | conda list |
| 查看 pip 包 | pip list |
| 查看所有环境 | conda env list |
| 导出 Conda 包列表 | conda list --export > package-list.txt |
| 创建 Conda 环境 | conda env create -f environment.yml |
| 更新 Conda 环境 | conda env update -f environment.yml |
| 安装 pip 依赖 | pip install -r requirements.txt |
总结
对于大多数 AI 项目,推荐采用以下组合:
- 使用
conda env export --no-builds导出完整 Conda 环境。 - 使用
pip freeze导出 pip 依赖。 - 将
environment.yml、requirements.txt和README.md一起提交到项目仓库。
这种方式兼顾了环境的完整性、可移植性和团队协作效率,也是目前 Python 和 AI 项目中最常见的环境管理方案。