Wtyczka do instalacji innych wtyczek

Dzień dobry,

Obecnie zajmuje się tworzeniem wtyczki do wczytywania innych wtyczek.
Mam napisane 5 skryptów, ale szef chce by był wspólny instalator- klik i pojawia się 5 nowych opcji na pasku zadań oraz w zakładce wtyczki> zarządzanie wtyczkami > Zainstalowanie.

Napisany z chatem kod wygląda tak (tylkof funkcja def run):

def run(self):
“”“Run method that performs all the real work”“”
#plugin_folder = QgsApplication.qgisSettingsDirPath() + “python/plugins/”
plugin_folder = os.path.join(
os.path.expanduser(“~”),
“AppData”,
“Roaming”,
“QGIS”,
“QGIS3”,
“profiles”,
“default”,
“python”,
“plugins”
)
zip_files= [… r" <<# tablica ścieżek do pięciu skryptów>>.zip"
]
installed = 0
for zip_path in zip_files:
#plugin_name = os.path.splitext(os.path.basename(zip_path))[0]
#target = os.path.join(plugin_folder, plugin_name)

        with zipfile.ZipFile(zip_path, 'r') as zip_ref:
            members = zip_ref.namelist()

            # Nazwa głównego katalogu wtyczki
            plugin_name = members[0].split('/')[0]

            target = os.path.join(
            plugin_folder,
            plugin_name
            )
            print("Instaluję:", plugin_name)
            print("Do:", target)

            # Usuń starą wersję
            if os.path.exists(target):
                shutil.rmtree(target)

            # Rozpakuj
            zip_ref.extractall(plugin_folder)

            installed += 1

            print(installed)


       
    QMessageBox.information(
        self.iface.mainWindow(),
        "Instalacja",
        f"Zainstalowano {installed} wtyczek."
        )

Lecz jej działanie powoduje tylko rozpakowanie i przeniesienie wtyczek do folderu programu QGIS, a sam program ich nie czyta-> nie pojawiają się na liście.

Nie wiem jak sformować problem pod kątem promptu do AI-> Co i jak sprawić by QGIS widział te wtyczki zainstalowane w programie.

Z góry dziękuje za każdą pomoc!

Jeśli dobrze rozumiem, to wywołujesz tą “instalację” z poziomu Pluginu wewnątrz QGIS. Jeśli tak jest, to wczytanie wtyczek z folderu plugins odbywa się w trakcie uruchamiania QGIS-a, więc musisz jeszcze przeładować program.
Możesz też pokombinować z wtyczką Plugin Reload, ale służy ona generalnie do odświeżania pluginu w trakcie działania QGIS, żeby nie trzeba było restartować programu po zmianie kodu wtyczki. Nie jestem tylko pewny czy ona nie wyświetla tylko załadowanych już pluginów.

Problem konieczności przeładowania programu szef zaakceptował, ale podał teraz inny. Chce by te 5 wtyczek miało oddzielny toolbar:

def init(self, iface):
“”"Constructor.

    :param iface: An interface instance that will be passed to this class
        which provides the hook by which you can manipulate the QGIS
        application at run time.
    :type iface: QgsInterface
    """
    # Save reference to the QGIS interface
    self.iface = iface
    # initialize plugin directory
    self.plugin_dir = os.path.dirname(__file__)
    # initialize locale
    self.action = None
    self.toolbar = None


def initGui(self):
    """Create the menu entries and toolbar icons inside the QGIS GUI."""
    icon_path = ':/plugins/instalator_wtyczek/icon.png'
    print("=== INIT GUI INSTALATORA ===")
    self.action = QAction("Instalator wtyczek", self.iface.mainWindow())
    self.action.triggered.connect(self.run)
    toolbar = self.iface.mainWindow().findChild(
        QToolBar,
        "MojeNarzedziaGISToolbar"
        )

    if toolbar is None:
        toolbar = self.iface.addToolBar("Moje narzędzia GIS")
        toolbar.setObjectName("MojeNarzedziaGISToolbar")
    else:
        print("Toolbar już istnieje")
        
    toolbar.addAction(self.action)
    self.iface.addPluginToMenu("&Instalator wtyczek", self.action)


def unload(self):
    """Removes the plugin menu item and icon from QGIS GUI."""
    if self.toolbar is not None:
        toolbar.removeAction(self.action)
    #self.iface.removeToolBarIcon(self.action)
    self.iface.removePluginMenu("&Instalator wtyczek", self.action)

Teraz tak mam, ale nie wiem czy to poprawnie, obecnie w QGIS nie wyświetla mi się nic po załadowaniu wtyczki (wcześniej była nazwa na pasku, ale teraz chce by ten pakiet 5 wtyczek miał oddzielny).Dziękuje za sugestię.