このリンクで提供されているmintyのソリューションを使用して、Tkinterベースのプログラム用の単一のexeファイルを生成しようとしています。
これが私がsetup.pyに書いたものです:
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(windows=[{'script': 'filename.py'}], \
options={"py2exe": {"includes": ["decimal", "Tkinter", \
"tkFileDialog", "csv", "xml.dom.minidom", "os"], \
'bundle_files': 1, 'compressed': False}}, \
zipfile = None)
Bundle_files = 1を指定した場合でも、Tkinterのもの用の「tcl」フォルダーが作成されます。さらに、他のexew9xpopen.exeも生成されます。ただし、実際のexeは実行されず、エラーも発生しません。これらのインクルードをすべて削除しても機能しません。
私がここで見逃している可能性があることについて何か考えはありますか?私は64ビットのWindows7マシンで作業しています。
このリンク のおかげで、site-packages/py2exe/build_exe.py
を編集し、"tcl85.dll"
と"tk85.dll"
をdlls_in_exedir
リストに追加する必要があります。これで実行されますが、tcl
フォルダーはまだあり、これら2つのdllはexeファイルの横にあります。しかし、それはbundle_files=3
よりもはるかに優れています。
self.dlls_in_exedir = [python_dll,
"w9xpopen%s.exe" % (is_debug_build and "_d" or ""),
"msvcr71%s.dll" % (is_debug_build and "d" or ""),
"tcl85.dll",
"tk85.dll"]