Python py2exe Fenster zeigt (tkinter)

Ich versuche eine exe von py2exe zu machen. Das Programm zeigt mit Tkinter ein Popup-ähnliches Fenster an. Das Problem ist, dass alles gut funktioniert, wenn ich das Setup wie folgt ausführe:

setup(windows = [{'script': "msg.py"}], zipfile = None)

aber es schlägt fehl, wenn ich versuche, eine One-File-Exe zu erstellen:

setup(windows = [{'script': "msg.py"}], zipfile = None, options = {'py2exe': {'bundle_files': 1, 'compressed': True}})

Eigentlich läuft die finale Exe ohne Probleme, zeigt aber kein Fenster an. Ich habe gelesen, dass es unter Windows 7 möglicherweise Probleme mit bundle_files = 1 gibt, aber ich habe auch versucht, bundle_files = 2 mit dem gleichen Effekt zu verwenden. Hier ist mein msg.py-Skript:

from win32gui import FindWindow, SetForegroundWindow
from Image import open as iopen
from ImageTk import PhotoImage
from Tkinter import Tk, Label
from threading import Timer
from subprocess import Popen
import os

def Thread(t, fun, arg=None):
    if arg<>None: x = Timer(t, fun, arg)
    else: x = Timer(t, fun)
    x.daemon = True
    x.start()

def NewMessage():
    global root
    if not os.path.exists('dane/MSG'):
        open('dane/MSG', 'w').write('')
        root = Tk()
        img = PhotoImage(iopen("incl/nowa.png"))
        label = Label(root, image=img)
        label.image = img
        label.bind("<Button-1>", Click)
        label.pack()
        root.geometry('-0-40')
        root.wm_attributes("-topmost", 1)
        root.overrideredirect(1)
        root.mainloop()

def Click(event):
    global root, exit
    root.destroy()
    os.remove('dane/MSG')
    OpenApp()
    exit = True

def OpenApp():
    hwnd = FindWindow(None, 'My program name')
    if hwnd: SetForegroundWindow(hwnd)
    else: Popen('app.exe')

root, exit = None, False
NewMessage()

Irgendwelche Ideen? Ich habe gelesen, dass es einige Probleme mit Tkinter gibt, aber es ging um Kompilierung. Mein Skript ist kompiliert und wirft keine Ausnahmen, zeigt aber das Fenster nicht an ...

Antworten auf die Frage(3)

Ihre Antwort auf die Frage