1. ホーム
  2. python

[解決済み] Tkinterプログラム用にpy2exeを使用して単一のEXEを作成する

2022-02-09 04:18:08

質問

このリンクにあるmintyのソリューションを使って、Tkinterベースのプログラム用のexeファイルを1つ生成しようとしています。

py2exe - 単一実行ファイルを生成する

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'フォルダが作成されます。さらに、w9xpopen.exeも生成されます。しかし、私の実際のexeは実行されませんし、エラーも出しません。これらのインクルードをすべて削除しても動作しません。

何か見落としがあるのでしょうか?私は64ビットのWindows 7マシンで作業しています。

解決方法は?

ありがとうございます。 このリンク を編集する必要があります。 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"]