然而,我点击了我的py文件,控制台出现并在闪存中消失,程序根本没有出现。通常这意味着我的代码中应该存在一些错误。所以我在IDLE中打开py文件并运行它,期望shell给我一个错误。但是,它没有报告任何内容。我不知道如何找到错误。该文件过去运行良好,它开始表现得像那样。我测试只将“输入('')”放在py文件中,它按预期工作。我的一些程序也运行良好,但其余程序都没有。
这个错误可能来自我导入的模块吗?我导入了自己编写的一些模块(ez和eztk)。我检查了那些功能。他们没事。
这是简化码的代码。
from tkinter import *
from tkinter import messagebox
from eztk import *
import ez
root=Tk()
root['bg']='MintCream'
t1=Text(root)
def newline():
t=gettxt(t1)
new=''
for i,ch in enumerate(t):
if ch=='\n' and t[i+1:i+3]!='- ':
new+=' '
else:
new+=ch
inst2(new)
w0=Label(root,text='Input:↑')
w1=Button(root,text="\\n",command=newline)
def brackets():
t=gettxt(t1)
new=''
stop=0
d={'[':']','(':')','{':'}',0:None}
for ch in t:
if ch in d:
stop=ch
elif ch==d[stop]:
stop=0
elif not stop:
new+=ch
inst2(new)
w2=Button(root,text='([{}])',command=brackets)
def linecount(event):
count=lambda t:t.count('\n')+(t[-1]!='\n') if t else 0
up=count(gettxt(t1))
down=count(gettxt(t2))
w3['text']=f'LineCount:↑{up}↓{down}'
root.bind('<KeyPress>', linecount)
w3=Label(root,text='LineCount')
def clear():
deltxt(t1)
deltxt(t2)
w4=Button(root,text='Clear',command=clear)
t2=Text(root)
ws=[w0,w1,w2,w3,w4]
t1.grid(row=0,column=0,columnspan=len(ws))
for i,w in enumerate(ws):
w.configure(relief=FLAT,bg='SeaGreen1')
w.grid(row=1,column=i,sticky=NS)
t2.grid(row=2,column=0,columnspan=len(ws))
def inst2(text):
deltxt(t2)
instxt(t2,text)
linecount('<KeyPress>')
try: ez.cpc(text)
except UnicodeError: messagebox.showerror('Error','You need to copy it to your clipboard manually.')
root.mainloop()
这些是导入模块中使用的函数:
def copyToClipboard(text):
win32clipboard.OpenClipboard()
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardText(text)
win32clipboard.CloseClipboard()
## abbreviation
cpc=copyToClipboard
def gettxt(text):
return text.get(1.0,'end').strip()
def deltxt(text):
text.delete(1.0,'end')
def instxt(textwidget,text):
textwidget.insert(1.0,text)
---更新---
我只是尝试将4个函数复制到simplifier.py而不是导入它们,它起作用了。但是,我也尝试导入其中任何一个,两个案例都失败了。在python shell中运行它们之后仍然没有错误。实际上,底部的3个函数是我的eztk模块中唯一的代码。当我单独导入eztk时,它仍然没有按预期工作,这意味着导入不应该有任何问题。