py2exeでexeを作成しようとしています。プログラムは、Tkinterを使用してポップアップのようなウィンドウを表示しています。問題は、次のようなセットアップを実行すると、すべてが正常に機能することです。
setup(windows = [{'script': "msg.py"}], zipfile = None)
しかし、1ファイルのexeを作成しようとすると失敗します。
setup(windows = [{'script': "msg.py"}], zipfile = None, options = {'py2exe': {'bundle_files': 1, 'compressed': True}})
実際、最終的なexeは問題なく実行されますが、ウィンドウは表示されません。Windows7ではbundle_files=1に問題がある可能性があることを読みましたが、同じ効果でbundle_files=2も試しました。これが私のmsg.pyスクリプトです:
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()
何か案は?Tkinterにはいくつか問題があると読みましたが、コンパイルについては問題がありました。私のスクリプトはコンパイルされており、例外はスローされませんが、ウィンドウは表示されません...