From b53b68c6860fdc011a4e99b10b83aed2dfe239fa Mon Sep 17 00:00:00 2001
From: qu1ck <anlutsenko@gmail.com>
Date: Wed, 16 Feb 2022 22:28:00 -0800
Subject: [PATCH] Fix double loading plugins and sys.path entires multiplying

---
 pcbnew/python/scripting/pcb_scripting_tool.cpp | 2 +-
 scripting/kicadplugins.i                       | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/pcbnew/python/scripting/pcb_scripting_tool.cpp b/pcbnew/python/scripting/pcb_scripting_tool.cpp
index 3d422b97a9..fd4fe11745 100644
--- a/pcbnew/python/scripting/pcb_scripting_tool.cpp
+++ b/pcbnew/python/scripting/pcb_scripting_tool.cpp
@@ -67,7 +67,7 @@ bool SCRIPTING_TOOL::Init()
         PyDict_SetItemString( sys_mod, "_pcbnew", mod );
         Py_DECREF( mod );
 
-        callLoadPlugins();
+        // plugins will be loaded later via ReloadPlugins()
     }
 
     return true;
diff --git a/scripting/kicadplugins.i b/scripting/kicadplugins.i
index c926bd1799..8f5bb235e9 100644
--- a/scripting/kicadplugins.i
+++ b/scripting/kicadplugins.i
@@ -253,7 +253,8 @@ def LoadPlugins(bundlepath=None, userpath=None, thirdpartypath=None):
         if not os.path.isdir( plugins_dir ):
             continue
 
-        sys.path.append( plugins_dir )
+        if plugins_dir not in sys.path:
+            sys.path.append( plugins_dir )
 
         for module in os.listdir(plugins_dir):
             fullPath = os.path.join( plugins_dir, module )