python - 将 Tkinter py 文件转换为 EXE 文件

标签 python tkinter exe cx-freeze

我试图使用 cx_freeze 将我的 tkinter 文件转换为 EXE,但我一直收到此错误 the error

希伯来语部分的翻译:未找到模块

我的安装文件代码是:

    import sys
from cx_Freeze import setup, Executable
import os

os.environ['TCL_LIBRARY'] = "C:\\Users\\royreznik\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] =  "C:\\Users\\royreznik\\AppData\\Local\\Programs\\Python\\Python36-32\\tcl\\tk8.6"


build_exe_options = {"includes": ["tkinter"]}

base = None
if sys.platform == "win32":
    base = "Win32GUI"

setup(
    name = "simple_Tkinter",
    version = "0.1",
    description = "Sample cx_Freeze Tkinter script",
    options = {"build_exe": build_exe_options},
    executables = [Executable("tal1.py", base = base)])

我的主文件是:

from tkinter import *
root = Tk()


Entry1 = Entry(root)
Entry2 = Entry(root)

Entry1.grid(row=0)
Entry2.grid(row=1)

Label1 = Label(root, text="null")
Label1.grid(row=4)

def funca():
    phrase = Entry1.get()
    words = phrase.split()
    wordCount = 0;
    for word in words:
        if word == Entry2.get():
            wordCount = wordCount+1
    Label1.configure(text=wordCount)

btn = Button(root, text="get Num",command=funca)
btn.grid(row=3)



root.mainloop()

问题是什么?

最佳答案

在 Python 目录的 DLL 文件夹中,您将找到 tk86t.dlltcl86t.dll。您必须将它们与要编译的 main.py 一起复制到构建文件夹中。

然后您必须将这两个文件添加到 setup.py 中的 include_files 参数中。

现在,您的 setup.py 应该如下所示:

import os
from cx_Freeze import setup, Executable

os.environ['TCL_LIBRARY'] = 'c:/python36/tcl/tcl8.6'
os.environ['TK_LIBRARY'] = 'c:/python36/tcl/tk8.6'

buildOptions = dict(
    packages = [],
    excludes = [],
    include_files=['c:/python36/DLLs/tcl86t.dll', 'c:/python36/DLLs/tk86t.dll']
)

import sys
base = 'Win32GUI' if sys.platform=='win32' else None

executables = [
    Executable('editor.py', base=base)
]

setup(name='editor',
      version = '1.0',
      description = '',
      options = dict(build_exe = buildOptions),
      executables = executables)

当然,您可能必须调整目录路径才能使其正常工作。

关于python - 将 Tkinter py 文件转换为 EXE 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44845123/

相关文章:

java - 在 java 代码中运行 .exe 文件

python - 如何在 DataFrame 上应用 Series.value_counts()?

python - 你怎么知道github存储库是用于python 2还是python 3

python - 在 Tkinter 中更改帧的 Tab 键顺序

c# - 如何在C#中使用反射从可执行文件(.exe)中提取类和方法信息

perl - 在 Perl 中执行进程,使用 IPC 停止、恢复、终止选项

python - Linux 服务器上的 PyMongo 和 Flask

python - Pandas read_csv 日期时间错误

python - 在 Tkinter 中加载图像的角落

python - 设置 Tkinter 默认小部件 kwargs