title: tkinter: AttributeError: 'str' object has no attribute 'tk'
body: <p>I'm writing code for a login system using the tkinter module. Python is returning an attribute error, I'm only just learning the tkinter module. help would be appreciated. The code is being run from another file using the exec command.
  Here is my code:</p>
  
  <pre><code>#import modules
  
  from tkinter import *
  import os
  import pygame
  from Mathletics_V2 import *
  
  # Designing window for registration
  
  def register():
      global register_screen
      register_screen = Toplevel(main_screen)
      register_screen.title("Register")
      register_screen.geometry("300x250")
  
      global username
      global password
      global username_entry
      global password_entry
      username = StringVar()
      password = StringVar()
  
      Label(register_screen, text="Please enter details below", bg="blue").pack()
      Label(register_screen, text="").pack()
      username_lable = Label(register_screen, text="Username * ")
      username_lable.pack()
      username_entry = Entry(register_screen, textvariable=username)
      username_entry.pack()
      password_lable = Label(register_screen, text="Password * ")
      password_lable.pack()
      password_entry = Entry(register_screen, textvariable=password, show='*')
      password_entry.pack()
      Label(register_screen, text="").pack()
      Button(register_screen, text="Register", width=10, height=1, bg="blue", command = register_user).pack()
  
  
  
  # Designing window for login 
  
  def login():
      global login_screen
      login_screen = Toplevel(main_screen)
      login_screen.title("Login")
      login_screen.geometry("300x250")
      Label(login_screen, text="Please enter details below to login").pack()
      Label(login_screen, text="").pack()
  
      global username_verify
      global password_verify
  
      username_verify = StringVar()
      password_verify = StringVar()
  
      global username_login_entry
      global password_login_entry
  
      Label(login_screen, text="Username * ").pack()
      username_login_entry = Entry(login_screen, textvariable=username_verify)
      username_login_entry.pack()
      Label(login_screen, text="").pack()
      Label(login_screen, text="Password * ").pack()
      password_login_entry = Entry(login_screen, textvariable=password_verify, show= '*')
      password_login_entry.pack()
      Label(login_screen, text="").pack()
      Button(login_screen, text="Login", width=10, height=1, command =login_verify).pack()
  
  # Implementing event on register button
  
  def register_user():
  
      username_info = username.get()
      password_info = password.get()
  
      file = open(username_info, "a+")
      file.write(username_info + "\n")
      file.write(password_info + "\n")
      file.close()
  
      username_entry.delete(0, END)
      password_entry.delete(0, END)
  
      Label(register_screen, text="Registration Success", fg="green", font=("calibri", 11)).pack()
  
  # Implementing event on login button 
  
  def login_verify():
      global username1
      username1 = username_verify.get()
      password1 = password_verify.get()
      username_login_entry.delete(0, END)
      password_login_entry.delete(0, END)
  
      list_of_files = os.listdir()
      if username1 in list_of_files:
          file1 = open(username1, "r")
          print(username1)
          verify = file1.read().splitlines()
          if username1 == 'admin':
              tMain_Screen()
          elif password1 in verify:
              login_sucess()
          else:
              password_not_recognised()
      else:
          user_not_found()
  
  # Designing popup for login success
  
  def login_sucess():
      global login_success_screen
      login_success_screen = Toplevel(login_screen)
      login_success_screen.title("Success")
      login_success_screen.geometry("150x100")
      Label(login_success_screen, text="Login Success").pack()
      Button(login_success_screen, text="OK", command=delete_login_success).pack()
      game_intro()
  
  # Designing popup for login invalid password
  
  def password_not_recognised():
      global password_not_recog_screen
      password_not_recog_screen = Toplevel(login_screen)
      password_not_recog_screen.title("Success")
      password_not_recog_screen.geometry("150x100")
      Label(password_not_recog_screen, text="Invalid Password ").pack()
      Button(password_not_recog_screen, text="OK", command=delete_password_not_recognised).pack()
  
  # Designing popup for user not found
  
  def user_not_found():
      global user_not_found_screen
      user_not_found_screen = Toplevel(login_screen)
      user_not_found_screen.title("Success")
      user_not_found_screen.geometry("150x100")
      Label(user_not_found_screen, text="User Not Found").pack()
      Button(user_not_found_screen, text="OK", command=delete_user_not_found_screen).pack()
  
  # Deleting popups
  
  def delete_login_success():
      login_success_screen.destroy()
  
  
  def delete_password_not_recognised():
      password_not_recog_screen.destroy()
  
  
  def delete_user_not_found_screen():
      user_not_found_screen.destroy()
  
  
  # Designing Main(first) window
  
  def main_account_screen():
      global main_screen
      main_screen = Tk()
      main_screen.geometry("300x250")
      main_screen.title("Account Login")
      Label(text="Select Your Choice", bg="blue", width="300", height="2", font=("Calibri", 13)).pack()
      Label(text="").pack()
      Button(text="Login", height="2", width="30", command = login).pack()
      Button(text="Registration", height="2", width="30", command= register).pack()
      Button(text="Quit", height="2", width="30", command= quit).pack()
  
      main_screen.mainloop()
  #Teacher Screen
  def tStudent_Progress():
      global Student_Progress_Screen
      Student_Progress_Screen = Toplevel(Main_Screen)
      Student_Progress_Screen.title("Student Progress")
      Student_Progress_Screen.geometry("500x500")
      Label(Student_Progress_Screen,text="Student Progress").pack()
      #Use while loop to list buttons for registered students
  
  def tgame():
      game_intro()
  
  #def tutorial():
      #Function to Change Tutorial Links
  
  def tMain_Screen():
      global tmain_Screen
      tmain_Screen = Toplevel(login_screen)
      tmain_Screen.geometry("300x400")
      tmain_Screen.title("Admin Interface")
      Label("tmain_screen",text="Select Your Choice", bg="blue", width="300", height="2", font=("Calibri", 13)).pack()
      Label(text="").pack()
  ##    Button(text="Student Progess",height="2", width=" 30", command = tStudent_Progress).pack()
  ##    Button(text="Game", height="2", width="30", command = tgame).pack()
  ##    #Button(text="Tutorial",height="2",width="30", command = ttutorial).pack()
  ##    Label(text="").pack()
  ##    Button(text="Quit",height="2", width="30",command = quit).pack()
  
  main_account_screen()
  </code></pre>
  
  <p>Here is my error:</p>
  
  <pre><code>Exception in Tkinter callback
  Traceback (most recent call last):
    File "C:\Users\Ethan\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in __call__
      return self.func(*args)
    File "&lt;string&gt;", line 100, in login_verify
    File "&lt;string&gt;", line 187, in tMain_Screen
    File "C:\Users\Ethan\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 3143, in __init__
      Widget.__init__(self, master, 'label', cnf, kw)
    File "C:\Users\Ethan\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 2561, in __init__
      BaseWidget._setup(self, master, cnf)
    File "C:\Users\Ethan\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 2530, in _setup
      self.tk = master.tk
  AttributeError: 'str' object has no attribute 'tk'
  </code></pre>
  
  <p>I'm using idle, any help would be greatly appreciated. This ones got me stumped. The error only runs when accessing the admin section of this interface.</p>