You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

机器学习项目如何分离开发与生产环境的requirements.txt?

你提到的拆分notebook目录和部署目录、各自配置独立requirements.txt的方案完全合理可行,也是目前AI/ML项目分离开发分析与生产部署的主流实践之一。

适配CookieCutter规范的参考项目结构
<项目根目录>
├── notebooks/                # 存放所有Jupyter探索、实验、分析代码
│   ├── requirements.txt      # 仅包含开发分析所需依赖:jupyter、可视化工具、调试工具等
│   ├── 01_数据探索.ipynb
│   ├── 02_特征工程实验.ipynb
│   └── 03_模型效果验证.ipynb
├── src/                      # 存放生产部署可用的核心代码
│   ├── requirements.txt      # 仅包含部署最小依赖,剔除所有notebook、开发调试类包
│   ├── data_process.py       # 生产环境数据预处理逻辑
│   ├── model_infer.py        # 模型推理核心逻辑
│   └── app.py                # 部署服务入口(如Flask/FastAPI接口)
├── data/                     # 统一存放数据集(可按raw、processed子目录划分,大文件配置到.gitignore)
├── tests/                    # 单元测试用例
└── README.md                 # 项目说明文档

开发实验阶段进入notebooks/目录执行pip install -r requirements.txt安装全部分析工具,部署阶段进入src/目录执行pip install -r requirements.txt安装最小运行依赖即可。

依赖拆分的替代优化方案

如果不想维护两份独立的依赖清单,也可以在根目录维护单份依赖文件,通过分组实现按需安装:

  • 在requirements.txt中拆分公共依赖和开发侧可选依赖,示例格式:
# 公共依赖(开发、部署环境都需要)
torch>=2.0.0
pandas>=1.5.3
numpy>=1.24.3
scikit-learn>=1.2.2

# 开发分析可选依赖 [dev]
jupyter>=3.6.0
matplotlib>=3.7.1
seaborn>=0.12.2
ipdb>=0.13.13

部署时直接执行pip install -r requirements.txt仅安装公共依赖,开发环境执行pip install -r requirements.txt -r <(grep -A100 '\[dev\]' requirements.txt | tail -n +2)即可一键安装全部开发侧依赖。

  • 如果使用poetry、pipenv等现代包管理工具,也可以直接在pyproject.toml的optional-dependencies中配置开发依赖组,语法更规范。
落地注意事项
  • 所有在notebook中验证通过的可复用逻辑(如数据清洗规则、模型推理逻辑)要及时同步到src/的生产代码中,避免出现实验逻辑和生产逻辑不一致的问题
  • 可配置git的过滤规则忽略notebook的输出单元格内容,避免提交大量执行结果导致仓库体积膨胀

内容的提问来源于stack exchange,提问作者Satrio Adi Prabowo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:36:05