- 修复二进制打包插件表缺失的问题

This commit is contained in:
jxxghp
2023-12-04 11:33:16 +08:00
parent 7d73cdef33
commit 0214beb679
3 changed files with 28 additions and 3 deletions

View File

@ -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)