From c0729b2d29547bada0da2b2b9eb5ebe27c0eed50 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Mon, 22 Apr 2024 19:04:15 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E9=87=8D=E8=BD=BD=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- util/plugin_util.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/util/plugin_util.py b/util/plugin_util.py index a8e3110a4..a9b80bf10 100644 --- a/util/plugin_util.py +++ b/util/plugin_util.py @@ -93,6 +93,10 @@ def plugin_reload(cached_plugins: RegisteredPlugins): return False, "未找到任何插件模块" fail_rec = "" + registered_map = {} + for p in cached_plugins: + registered_map[p.module_path] = None + for plugin in plugins: try: p = plugin['module'] @@ -130,13 +134,15 @@ def plugin_reload(cached_plugins: RegisteredPlugins): except BaseException as e: fail_rec += f"注册插件 {module_path} 失败, 原因: {str(e)}\n" continue - cached_plugins.append(RegisteredPlugin( - metadata=metadata, - plugin_instance=obj, - module=module, - module_path=module_path, - root_dir_name=root_dir_name - )) + + if module_path not in registered_map: + cached_plugins.append(RegisteredPlugin( + metadata=metadata, + plugin_instance=obj, + module=module, + module_path=module_path, + root_dir_name=root_dir_name + )) except BaseException as e: traceback.print_exc() fail_rec += f"加载{p}插件出现问题,原因 {str(e)}\n"