46 lines
1.1 KiB
Python
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()
|
|
|