Seite 1 von 1

[gelöst] PyInstaller / QT-Anwendung ausliefern

Verfasst: Freitag 29. Februar 2008, 15:22
von wirdbald
Hallo zusammen,

ich habe mir ein hübsches Backup-Programm geschrieben und die grafische Oberfläche mit PyQt gestaltet. Jetzt wo ich eine erste Version habe, möchte ich das Programm gerne auch an anderen Computern benutzen. Python möchte ich da nicht so gerne installieren und Qt+PyQt schon gar nicht. Wie macht Ihr das?

Ich habe es jetzt mit PyInstaller versucht. Der funktioniert bei mir auch super, aber nicht, wenn ich PyQt einbinde. Folgendermaßen habe ich mir eine Exe erstellt (Windows Batch):

Code: Alles auswählen

::	Skriptspezifische Einstellungen
set scriptname=PyBapplication
set scriptext=pyw

::	Globale Einstellungen
set python=C:\Python25
set pyinstaller=%python%\pyinstaller-1.3
set path=%path%;C:\Qt\4.3.3\bin;C:\Qt\4.3.3\lib;C:\Python25\Lib\site-packages\PyQt4

::      Pyinstaller konfigurieren
%python%\python.exe %python%\Configure.py

::      spec Datei erzeugen
%python%\python.exe %pyinstaller%\Makespec.py --onefile %~dp0%scriptname%.%scriptext%

::      EXE Datei erzeugen:
%python%\python.exe %pyinstaller%\Build.py %~dp0%scriptname%.spec
Wenn ich die Exe dann ausführe kommen folgende Fehlermeldungen:

Code: Alles auswählen

Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "C:\Python25\pyinstaller-1.3\iu.py", line 312, in importHook
  File "C:\Python25\pyinstaller-1.3\iu.py", line 398, in doimport
  File "D:/Stick/Documents/Skripten/Backup/PyBackup\PyBguistarter.py", line 6, in <module>
    from PyQt4 import QtCore, QtGui
ImportError: cannot import name QtCore
Habt Ihr vielleicht eine Idee, was da zu tun ist, oder auch einen besseren Vorschlag, wie ich die Anwendung "kompilieren" könnte. Also wie gesagt, ohne PyInstaller auf dem Entwicklungsrechner läuft das Programm wunderbar.

Verfasst: Freitag 29. Februar 2008, 18:06
von wirdbald
Jetzt kann ich mir die Frage selbst beantworten: Die PyQt-Module sind nicht richtig eingebunden worden. Ich konnte das Problem lösen, indem ich mir weitere so genannte "Hooks" heruntergeladen habe, die das einbinden zusätzlicher Module bewirken.
Falls noch einer das Problem hat: Es gibt sie hier:
http://pyinstaller.python-hosting.com/b ... unk/hooks/
bzw. wenn man auf der Ursprungsseite auf "browse source" klickt. Nur falls nochmal jemand Anderes das Problem haben sollte. Ich habe alle Hooks, die nach Qt klangen genommen.