Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 名称错误:全局名称';WTI&x27;没有定义_Python_Error Handling - Fatal编程技术网

Python 名称错误:全局名称';WTI&x27;没有定义

Python 名称错误:全局名称';WTI&x27;没有定义,python,error-handling,Python,Error Handling,作为我登录GUI的一部分,一旦输入了正确的详细信息,用户将进入主屏幕页面 def login(): content = nameentry.get() content1 = IDentry.get() if content == "1" and content1 == "1": root.destroy(), execfile("Homescreenscroll - Copy3.1.py") 但是,当Homescreenscroll-Copy3.

作为我登录GUI的一部分,一旦输入了正确的详细信息,用户将进入主屏幕页面

def login():
     content = nameentry.get()
     content1 = IDentry.get()
     if content == "1" and content1 == "1":
         root.destroy(), execfile("Homescreenscroll - Copy3.1.py")
但是,当Homescreenscroll-Copy3.1.py打开并运行时,它会说

线程1中的异常: 回溯(最近一次呼叫最后一次):

文件“C:\Users\Isaac\Desktop\Py\lib\threading.Py”,第530行,在引导程序内部

self.run()

文件“C:\Users\Isaac\Desktop\Py\lib\threading.Py”,第483行, 在逃

自我目标(*自我参数,**自我参数)

文件“Homescreenscroll-Copy3.1.py”,第5862行,在技巧中

WTI['text'] = row[0]
NameError:未定义全局名称“WTI”

即使它在“Homescreenscroll-Copy3.1.py”文件中有明确定义

它是“Homescreenscroll-Copy3.1.py”文件中此线程的一部分:

WTI = Label(text = "")

def trick(threadName, sleepTime):
    while 1 < 2:
    db=MySQLdb.connect(host = "xxx",
                    user = "xxx",
                    passwd = "xxx",
                    db = "test")
    cursor = db.cursor()
    cursor.execute("""xxxx""", (xxxxx)) 
    cursor.execute("""xxxx""", (xxxx))
    db.commit()
    row=cursor.fetchone()
    WTI['text'] = row[0]


try:
    t = threading.Thread(target=trick, args=("Trick running", 5))
    t.daemon = True
    t.start()
except: Exception,
print "start up"
WTI=Label(text=”“)
def技巧(threadName,休眠时间):
而1<2:
db=MySQLdb.connect(host=“xxx”,
user=“xxx”,
passwd=“xxx”,
db=“测试”)
cursor=db.cursor()
游标。执行(“'xxxx”“,(xxxxx))
游标。执行(“'xxxx”“,(xxxx))
db.commit()
row=cursor.fetchone()
WTI['text']=行[0]
尝试:
线程(目标=技巧,参数=(“技巧运行”,5))
t、 daemon=True
t、 开始()
例外:例外,,
打印“启动”
定义WTI。

在定义中加入一些文本,而不是什么都没有

我只需要导入模块。这似乎是为了我

因此,从登录GUI中,我已经输入:

def login():
content = nameentry.get()
content1 = IDentry.get()
if content == "1" and content1 == "1":
    root.destroy()
    from HomescreenscrollCopy31 import FullScreenApp
现在唯一的问题是,在该模块中有一个名为“Trick”的线程,当通过登录方式调用该线程时,该线程不会运行。它只在我运行实际的HomescreenscrollCopy31.py版本时才起作用

HomescreenscrollCopy31.py的外观如下所示:

class FullScreenApp(object):
    def __init__(self, master, **kwargs):
        self.master=master
        pad=3
        self._geom='200x200+0+0'
        master.geometry("{0}x{1}+0+0".format(
            master.winfo_screenwidth()-pad, master.winfo_screenheight()-pad))
        master.bind('<Escape>',self.toggle_geom)            
    def toggle_geom(self,event):
        geom=self.master.winfo_geometry()
        print(geom,self._geom)
        self.master.geometry(self._geom)
        self._geom=geom

    def trick(threadName, sleepTime):
        while 1 < 2:
            ....
    try:
        t = threading.Thread(target=trick, args=("Trick running", 5))
        t.daemon = True
        t.start()
    except: Exception,
    print "start up"
class FullScreenApp(对象):
定义初始(自我、主控、**kwargs):
self.master=master
pad=3
自我评价_geom='200x200+0+0'
几何体(“{0}x{1}+0+0”。格式(
master.winfo_屏幕宽度()-pad,master.winfo_屏幕高度()-pad))
主绑定(“”,自切换)
def切换_geom(自身、事件):
geom=self.master.winfo_geometry()
打印(几何图形、自/几何图形)
自学几何(自学几何)
自。_geom=geom
def技巧(threadName,休眠时间):
而1<2:
....
尝试:
线程(目标=技巧,参数=(“技巧运行”,5))
t、 daemon=True
t、 开始()
例外:例外,,
打印“启动”
当通过登录屏幕打开时,shell只打印“启动”,而不打印“运行技巧”


这是为什么?

您的
登录
功能和
尝试
部分在这里看起来是空的,请修复缩进。我猜
标签
是一个
Tkinter
对象。请添加此信息。此外,尝试在
trick
函数的开头添加行
global WTI
。该行最初是空的,函数“trick”随后将其填充。行[0]来自何处?行[0]来自游标。执行,行=游标。fetchone()行[0]是哪种输出?