2017-07-29 35 views
0

我想將我的python腳本轉換爲exe文件 ,任何人都可以從任何計算機上運行它,包括沒有python的計算機。 所以我看到一些指南解釋最好的方法是在cx_freeze庫中使用。 ,所以我建立了一個只在Tkinter的使用小的GUI應用程序,這是我的代碼:使用cx_freeze構建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

@Mark green這是我更新的答案,如果你還沒有看到它。 – Simon

相關問題