Pyinstaller + QWebView: Bilder richtig anzeigen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
snafu
User
Beiträge: 6833
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Ich habe folgendes Miniskript zur Einbindung von QWebView: http://paste.pocoo.org/show/105220/

Mit dem Pyinstaller habe ich nun eine Single-File-EXE erstellt: http://paste.pocoo.org/show/105224/

Wenn ich nun die EXE aufrufe und auf eine Seite gehe, zeigt er mir nicht alle Bilder richtig an: http://img9.imageshack.us/img9/971/browser.png

Beim "normalen" Auruf (also Pythonskript im Interpreter) gibt es damit keine Probleme. Weiß jemand wie man das beheben kann?

Noch ein Hinweis zu meinem Code: Den Import von sip und QtNetwork (die ja innerhalb des Skripts nicht direkt genutzt werden) mache ich, weil es vorher entsprechende ImportErrors beim Starten der EXE gab (warum auch immer) und mir keine bessere Lösung dafür eingefallen ist.

Wäre nett, wenn mir vor allem bei den Bildern jemand weiterhelfen könnte. :)

Sebastian
Benutzeravatar
snafu
User
Beiträge: 6833
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Bin nun auf eine Lösung gestoßen: Den Ordner ``plugins`` und die Datei ``qt.conf`` aus dem Qt-Verzeichnis ins Verzeichnis, wo das Skript liegt, kopieren. In der qt.conf das Prefix so anpassen, dass es auf den Ort, wo das Skript liegt, zeigt. Sieht in meinem Fall so aus:

Code: Alles auswählen

[Paths]
Prefix = C:/qt_browser
Binaries = .
Und, ja, das mit dem Slash als Seperator stimmt schon so.

Jedenfalls werden nun alle Bilder korrekt angezeigt. :)
Benutzeravatar
snafu
User
Beiträge: 6833
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hm, zu früh gefreut. Das funktioniert nur wenn der Plugin-Ordner auch existiert und die qt.conf im Verzeichnis vorhanden ist - also noch *nach* dem Build. Das heißt: Sobald ich die fertige EXE an einen anderen Ort kopiere und sie da ausführe, habe ich nach wie vor das Problem mit den Bildern. Und das kann ja nicht wirklich der Sinn einer Single-File-EXE sein. Ich bin aber jetzt auf einen sehr vielversprechenden (weil aktuellem) Thread zu diesem Thema gestoßen:

http://groups.google.com/group/PyInstal ... 3803ba2c00#

Im aktuellen Trunk besteht das Problem nach wie vor. Woran es anscheinend liegt, wird dort auch weiter unten gesagt. Mal abwarten, ob sich da noch eine Lösung ergibt.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Hm, das scheint immernoch das alte Problem von PyInstaller mit den hidden imports zu sein. Für Deine zusätzlichen QNetwork etc. imports sollte dies inzwischen in der SVN-Version gelöst sein, d.h. die mußt Du nich mehr separat angeben. (Die fehlenden hidden imports werden hier über zusätzliche hook-files aufgelöst.)

Mit QWebKit habe ich bisher nur unter Linux gearbeitet und noch nicht das Bedürfnis nach einer .exe gehabt. Offensichtlich braucht WebKit zusätzliche config-Pfade von qt, die Du PyInstaller irgendwie mitgeben müßtest. Keine Ahnung, ob dies über eine zusätzliche hook-datei möglich ist.

Grüße, Jerch
Antworten