2017-07-29 3 views
0

私は自分のpythonスクリプトをexeファイル に変換しようとしています。 だから、cx_freezeライブラリで使用するのが最善の方法を説明するガイドを参照してください。 ので、私は唯一のTkinterでは使用小さなGUIアプリケーションを構築し、これは私のコードです:cx_freezeを使用してexeファイルにpythonスクリプトをビルド

import tkinter 
top = tkinter.Tk() 
# Code to add widgets will go here... 
top.mainloop() 

と、これは私のセットアップファイルです:

from cx_Freeze import setup, Executable 
setup(
    name="GUI PROGRAM", 
    version="0.1", 
    description="MyEXE", 
    executables=[Executable("try.py", base="Win32GUI")], 
    ) 

と私は、このコマンドを実行します。

python setup.py build 

このエラーが発生する:

KeyError: 'TCL_LIBRARY 

これはtkinterを使用している場合にのみ発生します。だから私は何かが恋しいと思うし、何かの方法でセットアップファイルにtkinterを追加する必要がある。 誰かが私を助けることができますか? おかげで皆さん。

+0

あなたはどのバージョンのPythonを使用していますか?私はPyinstallerをライブラリとしてexeにパッケージ化することを提案しています...非常に使いやすい –

+0

私はPython 3.6で使用しています。それらを試してみると、実際には複雑になります –

+0

Cx_Freezeほど難しくありません。 – Simon

答えて

0

は、あなたがこれにあなたのセットアップスクリプトを変更してみてください。

from cx_Freeze import setup, Executable 
import os 
import sys 
import os.path 

PYTHON_INSTALL_DIR = os.path.dirname(os.path.dirname(os.__file__)) 
os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR,'tcl','tcl8.6') 
os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6') 

files = {"include_files": ["<Path to Python>/Python36-32/DLLs/tcl86t.dll", "<Path To Python>/Python36-32/DLLs/tk86t.dll"], "packages": ["tkinter"]} 

setup(
    name="GUI PROGRAM", 
    version="0.1", 
    description="MyEXE", 
    options = {"build_exe": files}, 
    executables=[Executable("try.py", base="Win32GUI")], 
) 

os.environ['TCL_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR,'tcl','tcl8.6') os.environ['TK_LIBRARY'] = os.path.join(PYTHON_INSTALL_DIR, 'tcl', 'tk8.6')files = {"include_files": ["<Path to Python>/Python36-32/DLLs/tcl86t.dll", "<Path To Python>/Python36-32/DLLs/tk86t.dll"], "packages": ["tkinter"]}が行方不明のTkとTclのランタイムが含まれている間、エラーメッセージを削除します。

+0

@マークグリーンあなたがそれを見たことがないなら、私の更新された答えです。 – Simon

関連する問題