""" 药店销售预测系统 - 模型训练模块 """ import os import glob import importlib _TRAINERS_LOADED = False def discover_trainers(): """ 自动发现并加载所有训练器插件。 使用一个标志位确保这个过程只执行一次。 """ global _TRAINERS_LOADED if _TRAINERS_LOADED: return print("🚀 开始发现并加载训练器插件...") package_dir = os.path.dirname(__file__) module_name = __name__ trainer_files = glob.glob(os.path.join(package_dir, "*_trainer.py")) for f in trainer_files: base_name = os.path.basename(f) if base_name.startswith('__'): continue module_stem = base_name.replace('.py', '') try: # 动态导入模块以触发自注册 importlib.import_module(f".{module_stem}", package=module_name) except ImportError as e: print(f"⚠️ 加载训练器 {module_stem} 失败: {e}") _TRAINERS_LOADED = True print("✅ 所有训练器插件加载完成。") # 在包被首次导入时,自动执行发现过程 discover_trainers()