【发布时间】:2020-10-27 08:25:49
【问题描述】:
阅读一些线程帮助我从我的 tkinter gui 创建了一个 .exe。
不幸的是,当我运行 .exe 文件时没有任何反应。当我在 vsc 中运行时,代码运行正常。
按照网上的说明,我做了以下步骤。
- 我打开了命令提示符,用
cd filelocation移动到我的文件位置 - 我运行了命令
pyinstaller name-of-my-file.py(例如,也尝试了--onefile规范。) - 我得到了三个文件夹 pycache、dist 和 build,在 build 中我找到了各自的 .exe 文件。
如上所述,当我运行 .exe 文件时没有任何反应。还尝试以管理员身份运行它。
以防万一,我将在下面发布我的代码。
感谢各种帮助。
from tkinter import *
from tkinter import messagebox
import time
import datetime
def clicked(event=None):
t = presentationDuration.get()
try:
t = float(t)
except ValueError:
messagebox.showerror(title='ValueError', message='The string is empty or there is no number entered!')
return
nSpeaker = nextSpeaker.get()
lbl.configure(text = nSpeaker, font = ("Arial Bold", 80))
t = int(t*60)
update(t)
def update(t):
if(t >= 0):
m,s = divmod(t, 60)
left_Time.configure(text = m)
right_Time.configure(text = s)
if(t <= 60):
nSpeaker = nextSpeaker.get()
lbl.configure(text = nSpeaker, bg = 'red', font = ("Arial Bold", 80))
window.after(1000, update, t-1)
window = Tk()
window.title("presenters Toolkit")
lbl_duration = Label(window, text = "duration [mins]")
lbl_duration.grid(column = 0, row = 0)
presentationDuration = Entry(window, width = 10)
presentationDuration.grid(column = 1, row = 0)
lbl_speaker = Label(window, text = "next Speaker")
lbl_speaker.grid(column = 2, row = 0)
nextSpeaker = Entry(window, width = 30)
nextSpeaker.grid(column = 3, row = 0)
lbl = Label(window, text = "", font = ("Arial Bold", 50))
lbl.grid(column = 1, row = 1)
btn = Button(window, text = "start", command = clicked)
btn.grid(column = 1, row = 3)
left_Time = Label(window, text ="--", font = ("Arial Bold", 80))
left_Time.grid(column = 0, row = 4)
mid_Time = Label(window, text = ":", font = ("Arial Bold", 80))
mid_Time.grid(column = 1, row = 4)
right_Time = Label(window, text = "--", font = ("Arial Bold", 80))
right_Time.grid(column = 2, row = 4)
window.mainloop()
【问题讨论】:
-
我在尝试执行您的代码时收到
NameError: name 'clicked' is not defined在线btn = Button(window, text = "start", command = clicked)。 -
尝试将函数 defs 移到这些元素的声明之前。
-
我只是想知道为什么OP说代码运行正常,当我在vsc中运行时。
-
尝试分别运行前三行代码,然后运行整个代码
-
您不应在
build目录中使用exe。如果使用--onedir编译,则使用dist目录内的目录;如果使用--onefile编译,则使用dist目录内的exe。
标签: python user-interface tkinter exe pyinstaller