Seite 1 von 1

[gelöst] Bilder nach py2exe nicht gefunden

Verfasst: Sonntag 27. August 2006, 11:31
von Spaten
Hallo nochmal! :)

Also ich hab ein Programm mit wx geschrieben, es mit py2exe in eine Exe gepackt und die nötigen bitmaps für die Buttons in das Verzeichnis gepackt.
wenn ich das programm dann mit einem Doppelklick auf die Exe öffne, funktioniert alles bestens, aber wenn ich versuche eine Datei damit zu öffnen, indem ich sie auf die Exe ziehe, zeigt er eine Fehlermeldung an, dass die Button-Bitmaps nicht gefunden wurden. :cry:
Das öffnen der Dateien hab ich mit sysargv[1] geregelt.

Hat irgendjemand eine Idee, woran das liegen könnte?
ich hab echt keine Ahnung, was der Grund dafür ist... :roll:

Verfasst: Sonntag 27. August 2006, 11:48
von DatenMetzgerX
Bei einem Doppelklick auf die Exe startet Winndos das Programm mit der Vollen Pfadangabe

z.B C:\Programme\myexe\myexe.exe

Andernfalls kann es der fall sein, das er das Programm mit
.\myexe.exe aufruft. k.A aber wäre möglich ;)

ich habe es bei mir mit __file__ gelöst

also

Code: Alles auswählen

PATH = __file__.rsplit('\\', 1)
[/code]

Verfasst: Sonntag 27. August 2006, 20:39
von Spaten
Hey, erstmal danke für deine Antwort!

Was bezweckst du denn mit dem __file__ genau?

Verfasst: Sonntag 27. August 2006, 21:19
von DatenMetzgerX
__file__ ist die genaue Pfadangabe zu dem aktuellen Modul

Verfasst: Sonntag 27. August 2006, 21:58
von Spaten
ah danke! Das hilft mir! etwas weiter :P

allerdings sagt er, wenn ich die Exe erstellt habe, dass __file__ nicht
definiert ist (global name __file__ is not defined).

Ich habs jetzt mit sysargv[0] gemacht und es funktioniert bestens :D:D:D
Danke für deine Hilfe, du scheinst ja echt viel Ahnung von Python zu
haben, wenn du so oft hilfst :wink:

Verfasst: Montag 28. August 2006, 07:54
von gerold
DatenMetzgerX hat geschrieben:

Code: Alles auswählen

PATH = __file__.rsplit('\\', 1)
Hi!

Code: Alles auswählen

os.path.split()
...ist plattformunabhängig und sollte in allen Fällen einem ``rsplit('\\')`` vorgezogen werden.

lg
Gerold
:-)