依赖管理与懒加载
Dependency Management & Lazy Loading
可选依赖的运行时检测和懒加载,避免强制安装所有包
子问题
1.可选依赖的运行时检测
2.友好的安装提示信息
3.重量级组件单例复用
4.按需加载减少启动时间
5.CI 层防止开发者误将可选依赖放在模块顶层
6.配置哈希中时间字段导致缓存失效
各项目的解法1 solutions
Signals
横向对比
| 维度 | MemOS |
|---|---|
| 检测机制 | require_python_package 装饰器 + importlib 运行时检测 |
| 错误提示 | install_command + install_link 双字段友好提示 |
| 单例策略 | WeakValueDictionary + MD5(config_json) 配置驱动缓存 |
| CI 守护 | AST 静态扫描顶层 import 违规,强制函数体内延迟导入 |
| 覆盖范围 | 20+ 类使用装饰器,6 个工厂使用 singleton_factory |
| 时间字段过滤 | 缓存键自动排除 12 种时间字段名,避免无效缓存失效 |
最佳实践
1.装饰器封装 import 检测逻辑
2.提供 install_command 和 install_link
3.singleton_factory 避免重复实例化
4.AST 扫描顶层 import 作为 CI 门控
5.WeakValueDictionary 自动回收无引用实例
6.缓存键生成时过滤时间字段避免无效失效