Frage

, wie ein gutes Plugin-Engine für Standalone-Executables mit pyInstaller, py2exe oder ähnlichen Werkzeugen erstellt zu schaffen?

Ich habe keine Erfahrung mit py2exe, aber pyInstaller verwendet einen Import Haken Pakete importieren aus ihrem Repository komprimiert wird. Natürlich ist ich dynamisch ein anderes komprimiertes Repository mit pyInstaller erstellt importieren kann und den Code ausführen - das ist ein einfacher Plugin Motor sein

.

Probleme erscheinen, wenn das Plugin (das, was dynamisch importiert wird), um eine Bibliothek verwendet, die nicht im Original-Repository ist (nie importiert). Dies liegt daran, Import Haken für die ursprüngliche Anwendung ist und sucht nach Paketen in Original-Repository - nicht die später importiert einer (Plugin-Paket-Repository).

Gibt es einen einfachen Weg, um dieses Problem zu lösen? Vielleicht gibt es solchen Motor?

War es hilfreich?

Lösung

Wenn zu exe kompiliert, Sie gehen, um dieses Problem zu haben.

Die einzige Option, die ich denken kann, um Benutzer mit thier Plugins zu erlauben Zugriff auf jede Python-Bibliothek zu verwenden ist, alle Bibliotheken in der exe-Paket enthalten.

Es ist wahrscheinlich eine gute Idee, unterstützt Bibliotheken auf eine Teilmenge zu begrenzen, und schreiben Sie es in Ihrer Dokumentation. Bis zu Ihnen.

Ich habe nur verwendet py2exe.

In py2exe Sie angeben können Bibliotheken, die nicht in der Suche gefunden wurden in der setup.py Datei.

Hier ist ein Beispiel:

from distutils.core import setup
import py2exe

setup (name = "script2compile",
       console=['script2compile.pyw'],
       version = "1.4",
       author = "me",
       author_email="somemail@me.com",
       url="myurl.com",
       windows = [{
                    "script":"script2compile.pyw",
                    "icon_resources":[(1,"./ICONS/app.ico")]  # Icon file to use for display
                 }],
       # put packages/libraries to include in the "packages" list
       options = {"py2exe":{"packages": [   "pickle",
                                            "csv",
                                            "Tkconstants",
                                            "Tkinter",
                                            "tkFileDialog",
                                            "pyexpat",
                                            "xml.dom.minidom",
                                            "win32pdh",
                                            "win32pdhutil",
                                            "win32api",
                                            "win32con",
                                            "subprocess", 
                                        ]}} 

       )

import win32pdh
import win32pdhutil
import win32api

Andere Tipps

PyInstaller hat haben ein Plugin-System für versteckte Importe Handhabung und Schiffe mit mehreren derjenigen, die bereits in. Siehe die Webseite ( http://www.pyinstaller.org ), die sagt:

  

Das Hauptziel des PyInstaller ist mit 3rd-Party-Paketen kompatibel ist out-of-the-box. Dies bedeutet, dass mit PyInstaller, alle erforderlichen Tricks externe Pakete Arbeit machen bereits integriert innerhalb PyInstaller selbst, so dass kein Benutzereingriff erforderlich ist. Sie werden nie für Tricks in Wikis aussehen erforderlich und individuelle Modifikation, um Ihre Dateien oder Ihre Setup-Skripten anwenden. Sie unsere Kompatibilitätsliste von SupportedPackages.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top