🔧 CI/CD依赖问题修复
❌ 问题
CI/CD失败,错误信息:
ModuleNotFoundError: No module named 'PIL'
失败位置:
shared/src/vision/camera_service.py:16-from PIL import Image- 导致11个测试文件无法收集
- 233个测试被取消选择
✅ 解决方案
根本原因
Pillow(PIL的Python包)没有在requirements.txt中声明,但以下文件需要它:
shared/src/vision/camera_service.py- 摄像头服务shared/src/chat/file_preview.py- 文件预览shared/src/api/knowledge.py- 知识库APIprivate/core/src/knowledge/pdf_processor.py- PDF处理tests/unit/test_vision.py- 视觉测试
修复措施
已在以下requirements文件中添加Pillow>=10.0.0:
- ✅
shared/requirements.txt- 添加Pillow - ✅
private/core/requirements.txt- 添加Pillow - ✅
tests/requirements.txt- 添加Pillow
修改内容
shared/requirements.txt
+ Pillow>=10.0.0 # 图像处理(vision/camera_service.py, chat/file_preview.py需要)
private/core/requirements.txt
+ Pillow>=10.0.0 # 图像处理(knowledge/pdf_processor.py需要)
tests/requirements.txt
+ Pillow>=10.0.0 # 图像处理(test_vision.py需要)
🧪 验证
本地验证
# 安装依赖
pip install -r shared/requirements.txt
pip install -r private/core/requirements.txt
pip install -r tests/requirements.txt
# 验证Pillow安装
python -c "from PIL import Image; print('Pillow installed successfully')"
# 运行测试
pytest tests/unit/test_vision.py -v
CI/CD验证
提交后,CI/CD应该能够:
- ✅ 安装所有依赖(包括Pillow)
- ✅ 成功收集所有测试文件
- ✅ 运行所有测试
- ✅ 通过CI/CD检查
📋 其他可能缺少的依赖
检查方法
如果还有其他依赖问题,可以:
检查导入错误:
python -m py_compile shared/src/vision/camera_service.py运行测试收集:
pytest --collect-only tests/unit/检查requirements:
pip check
常见缺失依赖
如果未来遇到类似问题,检查以下常见依赖:
Pillow- 图像处理opencv-python- 计算机视觉(如果使用)pdf2image- PDF转图像(如果使用)python-dotenv- 环境变量(如果使用)
✅ 预期结果
修复后,CI/CD应该:
- ✅ 安装阶段: 成功安装所有依赖(包括Pillow)
- ✅ 测试收集: 成功收集所有测试文件(不再有11个错误)
- ✅ 测试运行: 成功运行所有测试
- ✅ CI/CD通过: 工作流成功完成
🚀 下一步
- ✅ 提交修复
- ✅ 推送到GitHub
- ✅ 验证CI/CD通过
- ✅ 继续添加API测试用例
修复时间: 2026-02-08 状态: ✅ 已修复