2025-07-22 15:41:05 +08:00

46 lines
1.1 KiB
Python

"""
药店销售预测系统 - 模型训练模块
"""
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()