Standalone Windows Anwendung mit Qt

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Hallo allerseits,

ich steh mal wieder auf dem Schlauch, dies ist eher eine windowsspezifische Frage:

Ich möchte mein Programm, als Art Standalone Anwendungen verbreiten. Ich benutzte PyQt in der aktuellsten Version und habe nach diesem Beispiel gearbeitet:

http://ms4py.org/2010/05/05/python-portable-windows/

Hier wird exemplarisch dargestellt, wie man das ganze für GTK macht, leider aber nicht für Qt. Nach ein wenig Googeln, habe ich herausgefunden, dass die Umgebungsvariable QTDIR helfen könnte. Also:

Code: Alles auswählen

@echo off
SET QTDIR=%CD%\..\Python26\Lib\site-packages\PyQt4\bin
SET PATH=%QTDIR%
SET PYTHONPATH=%CD%
cd test
..\Python26\python script.py
PAUSE
Leider bekomm ich mit dem obigen Code:

Code: Alles auswählen

 from PyQt4 import QtGui
ImportError: DLL load failed: Das angegebene Modul wurde nicht gefunden.
Sprich: Die DLL wird nicht gefunden, die sich aber im obigen Verzeichnis von PyQt4 befinden.

Hat irgendjemand Vorschläge wie ich an die Sache dran gehen könnte?

Grüße,
anogayales
lunar

Für eine Standalone-Anwendung würde man doch eher pyinstaller oder py2exe verwenden. Hast Du es damit mal versucht?
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Hatten wir doch erst mit Qt: http://www.python-forum.de/viewtopic.php?f=24&t=23443

Edit: Deine Pfade scheinen nicht zu stimmen, das ergibt überhaupt keinen Sinn. Dein Python-Verzeichnis ist bei den zwei Zeilen (2 und 6) unter jeweils unterschiedlichen relativen Pfaden verlinkt! In Zeile 2 müssen vermutlich die Punkte weg im relativen Pfad.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Vielen, vielen Dank!

In der Tat hab ich da was mit meinen Pfade falsche gemacht. Nun klappt es aber wunderbar.

Nun jetzt eigentlich zur wichtigsten Frage:
Wie krieg ich mein Python Paket minimal, ferner, wie krieg ich mein PyQt4 Paket minimal?

Das Ding hat satte 140 MB. Heutzutage ist das vielleicht nicht viel, aber wegen der vielzahl an kleinen Dateien dauert das Verschieben bzw. Kopieren der Anwendung auf aktuellen Systemen einige Minuten.

Gibt es da vielleicht schon vorgefertigte Pakete?

Grüße,
anogayales
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

Also bei mir sind es nur 105 MB
  • "docs" kann auf jeden Fall raus -20 MB
  • "translations" kannst du aufräumen -3 MB
  • "examples" -5 MB
Damit sind es ca. 80 MB. Unter "bin" kannst du eventuell auch was löschen, musst halt schauen, was für DLL-Abhängigkeiten deine Programme haben. Z.B. mit "dependency walker" oder einfach durch trial and error.

BTW: Für die Verteilung würde ich sowieso archivieren (oder einen Installer), ist eleganter und in der Regel schneller.
„Lieber von den Richtigen kritisiert als von den Falschen gelobt werden.“
Gerhard Kocher

http://ms4py.org/
lunar

@anogayales: Du kannst zusätzlich auch die DLLs und Module entfernen, die Du nicht benötigst (mit Ausnahme von QtCore, das ist essentiell, selbst wenn Du es nicht direkt verwendest).
Antworten