Global name not defined

Posted by anteater7171 on Stack Overflow See other posts from Stack Overflow or by anteater7171
Published on 2010-06-10T04:09:48Z Indexed on 2010/06/10 4:12 UTC
Read the original article Hit count: 567

Filed under:
|
|

I wrote a CPU monitoring program in Python. For some reason sometimes the the program will run without any problem. Then other times the program won't even start because of the following error.

Traceback (most recent call last):

File "", line 244, in run_nodebug File "C:\Python26\CPUR1.7.pyw", line 601, in app = simpleapp_tk(None) File "C:\Python26\CPUR1.7.pyw", line 26, in init self.initialize() File "C:\Python26\CPUR1.7.pyw", line 107, in initialize self.F() File "C:\Python26\CPUR1.7.pyw", line 517, in F S2 = TL.entryVariableS.get() NameError: global name 'TL' is not defined

I can't seem to find the problem, maybe someone more experienced may assist me?

Here is a snippet of the part giving me trouble: (The second to last line in the snippet is what's giving me trouble)

def E(self):


    if self.selectedM.get() =='Options...':

Setup

        global TL
        TL = Tkinter.Toplevel(self)




        menu = Tkinter.Menu(TL)
        TL.config(menu=menu)

        filemenu = Tkinter.Menu(menu)
        menu.add_cascade(label="|     Menu     |", menu=filemenu)

        filemenu.add_command(label="Instruction Manual...", command=self.helpmenu)
        filemenu.add_command(label="About...", command=self.aboutmenu)
        filemenu.add_separator()
        filemenu.add_command(label="Exit Options", command=TL.destroy)
        filemenu.add_command(label="Exit", command=self.destroy)

        helpmenu = Tkinter.Menu(menu)
        menu.add_cascade(label="|     Help     |", menu=helpmenu)
        helpmenu.add_command(label="Instruction Manual...", command=self.helpmenu)
        helpmenu.add_separator()
        helpmenu.add_command(label="Quick Help...", command=self.helpmenu)

Title

        TL.label5 = Tkinter.Label(TL,text="CPU Usage: Options",anchor="center",fg="black",bg="lightgreen",relief="ridge",borderwidth=5,font=('Arial', 18, 'bold'))
        TL.label5.pack(padx=15,ipadx=5)

X Y scale

        TL.separator = Tkinter.Frame(TL,height=7, bd=1, relief='ridge', bg='grey95')
        TL.separator.pack(pady=5,padx=5)
#
        TL.sclX = Tkinter.Scale(TL.separator, from_=0, to=1500, orient='horizontal', resolution=1, command=self.A)
        TL.sclX.grid(column=1,row=0,ipadx=27, sticky='w')

        TL.label1 = Tkinter.Label(TL.separator,text="X",anchor="s",fg="black",bg="grey95",font=('Arial', 8 ,'bold'))
        TL.label1.grid(column=0,row=0, pady=1, sticky='S')





        TL.sclY = Tkinter.Scale(TL.separator, from_=0, to=1500, resolution=1, command=self.A)
        TL.sclY.grid(column=2,row=1,rowspan=2,sticky='e', padx=4)

        TL.label3 = Tkinter.Label(TL.separator,text="Y",fg="black",bg="grey95",font=('Arial', 8 ,'bold'))
        TL.label3.grid(column=2,row=0, padx=10, sticky='e')





        TL.entryVariable2 = Tkinter.StringVar()
        TL.entry2 = Tkinter.Entry(TL.separator,textvariable=TL.entryVariable2,
                                    fg="grey15",bg="grey90",relief="sunken",insertbackground="black",borderwidth=5,font=('Arial', 10))
        TL.entry2.grid(column=1,row=1,ipadx=20, pady=10,sticky='EW')
        TL.entry2.bind("<Return>", self.B)

        TL.label2 = Tkinter.Label(TL.separator,text="X:",fg="black",bg="grey95",font=('Arial', 8 ,'bold'))
        TL.label2.grid(column=0,row=1, ipadx=4, sticky='W')





        TL.entryVariable1 = Tkinter.StringVar()
        TL.entry1 = Tkinter.Entry(TL.separator,textvariable=TL.entryVariable1,
                                    fg="grey15",bg="grey90",relief="sunken",insertbackground="black",borderwidth=5,font=('Arial', 10))
        TL.entry1.grid(column=1,row=2,sticky='EW')
        TL.entry1.bind("<Return>", self.B)


        TL.label4 = Tkinter.Label(TL.separator,text="Y:", anchor="center",fg="black",bg="grey95",font=('Arial', 8 ,'bold'))
        TL.label4.grid(column=0,row=2, ipadx=4, sticky='W')



        TL.label7 = Tkinter.Label(TL.separator,text="Text Colour:",fg="black",bg="grey95",font=('Arial', 8 ,'bold'),justify='left')
        TL.label7.grid(column=1,row=3,  sticky='W',padx=10,ipady=10,ipadx=30)

        TL.selectedP = Tkinter.StringVar()
        TL.opt1 = Tkinter.OptionMenu(TL.separator, TL.selectedP,'Normal', 'White','Black', 'Blue', 'Steel Blue','Green','Light Green','Yellow','Orange' ,'Red',command=self.G)

        TL.opt1.config(fg="black",bg="grey90",activebackground="grey90",activeforeground="black",
                     anchor="center",relief="raised",direction='right',font=('Arial', 10))
        TL.opt1.grid(column=1,row=4,sticky='EW',padx=20,ipadx=20)
        TL.selectedP.set('Normal')



        TL.sclS = Tkinter.Scale(TL.separator, from_=10, to=2000, orient='horizontal', resolution=10, command=self.H)
        TL.sclS.grid(column=1,row=5,ipadx=27, sticky='w')
        TL.sclS.set(600)


        TL.entryVariableS = Tkinter.StringVar()
        TL.entryS = Tkinter.Entry(TL.separator,textvariable=TL.entryVariableS,
                                    fg="grey15",bg="grey90",relief="sunken",insertbackground="black",borderwidth=5,font=('Arial', 10))
        TL.entryS.grid(column=1,row=6,ipadx=20, pady=10,sticky='EW')
        TL.entryS.bind("<Return>", self.I)
        TL.entryVariableS.set(600)
#
        TL.resizable(False,False)
        TL.title('Options')

        geomPatt = re.compile(r"(\d+)?x?(\d+)?([+-])(\d+)([+-])(\d+)")
        s = self.wm_geometry()
        m = geomPatt.search(s)
        X = m.group(4)
        Y = m.group(6)

        TL.sclY.set(Y)
        TL.sclX.set(X)





    if self.selectedM.get() == 'Exit':

        self.destroy()


def F (self):


    G = round(psutil.cpu_percent(), 1)
    G1 = str(G) + '%'



    self.labelVariable.set(G1)


    if G < 5:
        self.imageLabel.configure(image=self.image0)
    if G >= 5:
        self.imageLabel.configure(image=self.image5)
    if G >= 10:
        self.imageLabel.configure(image=self.image10)
    if G >= 15:
        self.imageLabel.configure(image=self.image15)

    if G >= 20:
        self.imageLabel.configure(image=self.image20)

    if G >= 25:
        self.imageLabel.configure(image=self.image25)



    if G >= 30:
        self.imageLabel.configure(image=self.image30)

    if G >= 35:
        self.imageLabel.configure(image=self.image35)

    if G >= 40:
        self.imageLabel.configure(image=self.image40)

    if G >= 45:
        self.imageLabel.configure(image=self.image45)


    if G >= 50:
        self.imageLabel.configure(image=self.image50)

    if G >= 55:
        self.imageLabel.configure(image=self.image55)

    if G >= 60:
        self.imageLabel.configure(image=self.image60)

    if G >= 65:
        self.imageLabel.configure(image=self.image65)




    if G >= 70:
        self.imageLabel.configure(image=self.image70)

    if G >= 75:
        self.imageLabel.configure(image=self.image75)

    if G >= 80:
        self.imageLabel.configure(image=self.image80)

    if G >= 85:
        self.imageLabel.configure(image=self.image85)



    if G >= 90:
        self.imageLabel.configure(image=self.image90)

    if 100> G >= 95:
        self.imageLabel.configure(image=self.image95)

    if G == 100:
        self.imageLabel.configure(image=self.image100)

    S2 = TL.entryVariableS.get()



    self.after(int(S2), self.F)

© Stack Overflow or respective owner

Related posts about python

Related posts about global-variables