- 修复二进制打包插件表缺失的问题
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import importlib
|
||||
import pkgutil
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
class ModuleHelper:
|
||||
@ -35,3 +36,26 @@ class ModuleHelper:
|
||||
print(f'加载模块 {package_name} 失败:{err}')
|
||||
|
||||
return submodules
|
||||
|
||||
@staticmethod
|
||||
def dynamic_import_all_modules(base_path: Path, package_name: str):
|
||||
"""
|
||||
动态导入所有模块到全局对象
|
||||
"""
|
||||
modules = []
|
||||
# 遍历文件夹,找到所有模块文件
|
||||
for file in base_path.glob("*.py"):
|
||||
file_name = file.stem
|
||||
if file_name != "__init__":
|
||||
modules.append(file_name)
|
||||
# 保存已有的全局对象
|
||||
existing_globals = set(globals().keys())
|
||||
# 动态导入并添加到全局命名空间
|
||||
for module in modules:
|
||||
full_module_name = f"{package_name}.{module}"
|
||||
import_module = importlib.import_module(full_module_name)
|
||||
module_globals = import_module.__dict__
|
||||
# 仅导入全局对象中不存在的部分
|
||||
new_objects = {name: value for name, value in module_globals.items() if name not in existing_globals}
|
||||
# 更新全局命名空间
|
||||
globals().update(new_objects)
|
||||
|
Reference in New Issue
Block a user