Wie erstellt man eine gute Plugin-Engine für eigenständige ausführbare Dateien, die mit pyInstaller, py2exe oder ähnlichen Tools erstellt wurden?Erstellen von Plugins für eigenständige Python-Executables
Ich habe keine Erfahrung mit py2exe, aber pyInstaller verwendet einen Import-Hook, um Pakete aus seinem komprimierten Repository zu importieren. Natürlich kann ich auch ein anderes komprimiertes Repository, das mit pyInstaller erstellt wurde, dynamisch importieren und den Code ausführen - dies kann eine einfache Plugin-Engine sein.
Probleme treten auf, wenn das Plugin (das was dynamisch importiert wird) eine Bibliothek verwendet, die nicht im Originalrepository vorhanden ist (nie importiert). Dies liegt daran, dass der Import-Hook für die ursprüngliche Anwendung ist und nach Paketen im Original-Repository sucht - nicht nach dem, das später importiert wird (Plugin-Paket-Repository).
Gibt es eine einfache Möglichkeit, dieses Problem zu lösen? Vielleicht gibt es einen solchen Motor?
Ich dachte über Plugin-System für meine eigenständige Anwendung nach. Ich habe eine Anwendung mit pyInstaller erstellt. Ich möchte Plugins für diese Anwendung erstellen. Das Problem ist, wenn das Plugin etwas importiert, das nicht in die ursprüngliche Anwendung importiert wurde - der Import schlägt fehl. – uhz
Also am besten wäre, wenn: - Plugins enthalten keine Module, die bereits in binäre Anwendung sind - Plugins enthalten Module, die nicht in der Anwendung vorhanden sind - importiert zuerst versucht, aus der Hauptanwendung zu importieren, wenn von Plugin-Modulen – uhz
Genau das macht PyInstaller. Hast du es versucht? –