Reznik
Reznik

Reputation: 2806

Convert Tkinter py file into EXE file

im trying to convert my tkinter file into EXE using cx_freeze, but i got this error all the time the error

translation of the hebrew part: module didnt found

my setup file code is:

    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)])

and my main file is:

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()

whats the problem?

Upvotes: 1

Views: 2527

Answers (1)

RyanU
RyanU

Reputation: 130

In your Python directory's DLLs folder you will find tk86t.dll and tcl86t.dll. You have to copy them into the build folder with the main.py you want to compile.

Then you have to add these two files to the include_files parameter in your setup.py.

Now, your setup.pyshould look like something like this :

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)

Of course you may have to adapt the directories paths to make it work.

Upvotes: 1

Related Questions