1
I’m starting to study Tkinter and compilation, and I have a basic Python notion, and I’m having some problems. Here’s an example of a basic program that, after compiling, the executable just quickly opens a cmd and closes, without any other kind of response, I’ve tried using while True before the code, but it has no effect.It must be something really stupid, but it is a legitimate doubt.
    import tkinter as tk
from tkinter import *
import random
#####################################
abc='abcdefghijklmnopqrstuvwxyz'
rot=3
def cifrar(message):
    m=''
    n=0
    for c in message:
        c_index = abc.index(c)
        if c_index<23:
            m+=abc[c_index+rot]
        elif c_index==23:
            m+='a'
        elif c_index==24:
            m+='b'
        elif c_index==25:
            m+='c'
        else:
            m+=c
    return m
def decifrar(message):
    m=''
    for d in message:
        d_index=abc.index(d)
        if d_index>=3:
            m+=abc[d_index-rot]
        elif d_index==0:
            m+='x'
        elif d_index==1:
            m+='y'
        elif d_index==2:
            m+='z'
        else:
            m+=d_index
    return m
#####################################
janela=tk.Tk()
janela.title('Convertor da Cifra de César')
def bt_click():
    lb2['text']=str(cifrar(ed.get()))
janela['bg']='red'
########
cores=['blue','green','red','black']
######
def bt_click2():
    lb2['text']=str(decifrar(ed.get()))
#
def changec():
    janela['bg']=str(cores[random.randint(0,3)])
#
ed=Entry(janela, width='47')
ed.place(x=50,y=150)
#
lb=Label(janela, text='Convertor da Cifra de César')
lb.place(x=50,y=40)
lb.config(font=('Comic_Sans', 14))
#
lb2=Label(janela,text='', width='40')
lb2.place(x=50,y=180)
#
bt=Button(janela,text='Cifrar',command=bt_click, width=15)
bt.place(x=50,y=250)
#
bt2=Button(janela,text='Decifrar', width='15',command=bt_click2)
bt2.place(x=180,y=250)
#
bt3=Button(janela,text='Mudar cor de fundo',command=changec)
bt3.place(x=285,y=281)
#
janela.geometry(('400x300+320+140'))
janela.mainloop()
Code of setup.py file:
from cx_Freeze import setup, Executable
import os
import cx_Freeze
os.environ['TCL_LIBRARY'] = r'C:\Program Files\Python36\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Program Files\Python36\tcl\tcl8.6'
executables=[cx_Freeze.Executable('CeasarCypher.py')]
cx_Freeze.setup(name='CeasarCypher',version='0.1',description='foda',
      options={'build_exe':{'packages':['tkinter']}},
      executables=executables,
      )
						
I just did that, but after compiling again, you’re still in the same situation. I think there may be some error in the setup file, but I can’t say.Just for the sake of conscience, I’ll leave the setup code in the question.
– Caio Roberto