Seite 1 von 1

Hilfe zu Py2Exe bzw PyInstaller

Verfasst: Montag 1. August 2011, 18:50
von Robokopp
Hallo

ich habe ein Programm, welches PyQt nutzt und aus 2 Dateien besteht, aus dem ich eine exe-Datei machen möchte!
-main.py
-gui.ui

Die meisten Tutorials beziehen sich leider auf reine Konsolenversionen, weshalb ich nicht weiß wie ich das auf mein Programm anwenden soll, da hier ja mehr als nur eine Datei gepackt werden muss.

Wie müsste da die setup.py Datei aussehen und was ist sinnvoller und einfacher (py2exe oder pyinstaller)?

Wie sieht es mit den PyQt Bibliotheken aus? (Einbindung)

MfG

EDIT:

Habs jetzt auch eine Weile mit Gui2Exe probiert, ohne Erfolg!

Wo lege ich bitte dieses dämliche ui File fest und wie integriere ich mein PyQt4?

Re: Hilfe zu Py2Exe bzw PyInstaller

Verfasst: Montag 14. November 2011, 16:57
von laserfan64
ich würde sagen py2exe weil es besser ist

Re: Hilfe zu Py2Exe bzw PyInstaller

Verfasst: Montag 14. November 2011, 17:02
von deets
@laserfan64

Woher weisst du das? Du hast doch noch nicht mal ein simples Skript damit zu einer EXE verwandeln koennen? Woher kommt mit einem Mal dieser Erfahrungsvorsprung?

Re: Hilfe zu Py2Exe bzw PyInstaller

Verfasst: Dienstag 15. November 2011, 01:18
von Gremlin
Eins vorweg, ich kenne mich nicht mit PyQT/PyInstaller aus, sondern nur mit wxpython und py2exe, aber ich denke die Prinzipien sollten die selben sein.

Du kennst die Samples von Py2exe? (...\Python\lib\site-packages\py2exe\samples)
Da dürfte der "advanced"-Ordner für dich interessant sein.

Du findest da in der setup.py folgenden Abschnitt:

Code: Alles auswählen

test_wx = Target(
    # used for the versioninfo resource
    description = "A sample GUI app",
    ....
    )

...

setup(
    options = {"py2exe": {
                          ...
                          # create a compressed zip archive
                          "compressed": 1,
                          "optimize": 2,
                          "excludes": excludes,
                          "includes": ['gui.ui']}},
    ...
    windows = [test_wx],
    )
Das "windows = [test_wx]" kennzeichnet das weiter oben definierte "Target" als Nicht-Konsolen Applikation (d.h. "console = ..." brauchst du nicht) und mit der "includes"-Option im Setup kannst du Dateien mit in die Exe oder das Archiv einbeziehen die nicht automatisch durch den Importmechanismus erkannt werden. (Allerdings landet das dann tatsächlich im Archiv und nicht nur im selben Verzeichnis wie die Exe, und obs dann noch von PyQt erkannt werden kann, kann ich nicht sagen.)

Generell dürfte auch dieser Link hier recht nützlich sein: http://www.py2exe.org/index.cgi/GeneralTipsAndTricks