Tkinterのexe化
2017/01/14
Python2.7.6, py2exe0.6.9
setup.pyのテスト
(いらんものを極力入れない)
# -*- coding: utf-8 -*-
from distutils.core import setup
import py2exe
import datetime
import sys,os
sys.argv.append('py2exe')
DIST_DIR = r'C:\Temp\dist\sample'
BUILD_DIR = r'C:\Temp\build'
DIST_FILE = 'test_window.py'
from _tkinter import TK_VERSION, TCL_VERSION
tcl_dll = 'tcl{0}.dll'.format(TCL_VERSION.replace('.',''))
tk_dll = 'tk{0}.dll'.format(TK_VERSION.replace('.',''))
py2exe.build_exe.py2exe.old_prepare = py2exe.build_exe.py2exe.plat_prepare
def new_prep(self):
self.old_prepare()
self.dlls_in_exedir.append(tcl_dll)
self.dlls_in_exedir.append(tk_dll)
py2exe.build_exe.py2exe.plat_prepare = new_prep
py2exe_options = {
'compressed': True,
'optimize': 2,
'bundle_files': 1,
'dist_dir': DIST_DIR,
'includes': ['Tkinter', 'Tkconstants'],
'excludes' : ['_gtkagg','_ssl','_tkagg','bsddb','curses','doctest','email',
'pdb', 'pyreadline','pywin.debugger','pywin.debugger.dbgcon',
'pywin.dialogs',],
'dll_excludes':['w9xpopen.exe'],
}
setup(
options = {'build': {'build_base': BUILD_DIR},
'py2exe': py2exe_options},
windows = [{'script' : DIST_FILE}],
zipfile = None,
)
[メモ]
普段使っているPySideなにのないウィンドウでも10MBになるので、Tkinterの方が軽量ではないかと考えた。
しかし、1つのファイルにする設定でビルドしても、tcl というフォルダができる。
なんとかこれをリソースに取り込み、1ファイルにすることを目指したけど、かなわなかった(半日が無駄に・・・)
とりあえず4つまでに抑えるとこまでで力尽きた
生成ファイル:test_window.exe,、tck85.dll、tk85.dll、tcl(フォルダ)
これで10MBあるから・・・、PySideでいいか。
Creating single EXE using py2exe for a Tkinter program
http://stackoverflow.com/questions/14975018/creating-single-exe-using-py2exe-for-a-tkinter-program
Python py2exe window showing (tkinter)
http://stackoverflow.com/questions/14566531/python-py2exe-window-showing-tkinter
How to correct TCL_LIBRARY and TK_LIBRARY with py2exe
http://stackoverflow.com/questions/12598279/how-to-correct-tcl-library-and-tk-library-with-py2exe