99 lines
2.8 KiB
Python
99 lines
2.8 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
SUW Load Module - Python翻译版本
|
||
原文件: SUWLoad.rb
|
||
用途: 加载所有SUWood相关模块
|
||
"""
|
||
|
||
import sys
|
||
import os
|
||
from pathlib import Path
|
||
|
||
# 添加当前目录到Python路径
|
||
current_dir = Path(__file__).parent
|
||
sys.path.insert(0, str(current_dir))
|
||
|
||
# 导入所有SUWood模块
|
||
try:
|
||
from . import suw_constants
|
||
from . import suw_core
|
||
from . import suw_client
|
||
from . import suw_observer
|
||
from . import suw_unit_point_tool
|
||
from . import suw_unit_face_tool
|
||
from . import suw_unit_cont_tool
|
||
from . import suw_zone_div1_tool
|
||
from . import suw_menu
|
||
|
||
print("✅ SUWood 所有模块加载成功")
|
||
|
||
except ImportError as e:
|
||
print(f"⚠️ 模块加载警告: {e}")
|
||
print("部分模块可能尚未创建或存在依赖问题")
|
||
|
||
# 模块列表(对应原Ruby文件)
|
||
REQUIRED_MODULES = [
|
||
'suw_constants', # SUWConstants.rb
|
||
'suw_core', # SUWImpl.rb (已重构为suw_core)
|
||
'suw_client', # SUWClient.rb
|
||
'suw_observer', # SUWObserver.rb
|
||
'suw_unit_point_tool', # SUWUnitPointTool.rb
|
||
'suw_unit_face_tool', # SUWUnitFaceTool.rb
|
||
'suw_unit_cont_tool', # SUWUnitContTool.rb
|
||
'suw_zone_div1_tool', # SUWZoneDiv1Tool.rb
|
||
'suw_menu' # SUWMenu.rb
|
||
]
|
||
|
||
|
||
def check_modules():
|
||
"""检查所有必需模块是否存在"""
|
||
missing_modules = []
|
||
|
||
for module_name in REQUIRED_MODULES:
|
||
module_file = current_dir / f"{module_name}.py"
|
||
if not module_file.exists():
|
||
missing_modules.append(module_name)
|
||
|
||
if missing_modules:
|
||
print(f"❌ 缺少模块: {', '.join(missing_modules)}")
|
||
return False
|
||
else:
|
||
print("✅ 所有必需模块文件都存在")
|
||
return True
|
||
|
||
|
||
def load_all_modules():
|
||
"""加载所有模块"""
|
||
loaded_modules = []
|
||
failed_modules = []
|
||
|
||
for module_name in REQUIRED_MODULES:
|
||
try:
|
||
__import__(f'blenderpython.{module_name}')
|
||
loaded_modules.append(module_name)
|
||
except ImportError as e:
|
||
failed_modules.append((module_name, str(e)))
|
||
|
||
print(f"✅ 成功加载模块: {len(loaded_modules)}/{len(REQUIRED_MODULES)}")
|
||
|
||
if failed_modules:
|
||
print("❌ 加载失败的模块:")
|
||
for module, error in failed_modules:
|
||
print(f" - {module}: {error}")
|
||
|
||
return loaded_modules, failed_modules
|
||
|
||
|
||
if __name__ == "__main__":
|
||
print("🚀 SUWood Python模块加载器")
|
||
print("=" * 40)
|
||
|
||
# 检查模块文件
|
||
check_modules()
|
||
|
||
# 尝试加载所有模块
|
||
loaded, failed = load_all_modules()
|
||
|
||
print(f"\n📊 加载结果: {len(loaded)}/{len(REQUIRED_MODULES)} 个模块成功加载")
|