ImportError when importing Tkinter in Python

ImportError when importing Tkinter in Python

Asked on November 23, 2018 in tkinter.
Add Comment


  • 4 Answer(s)

    The answer is:

         Root of the problem is that the Tkinter module is named Tkinter capital “T” in python 2.x, and tkinter lowercase “t” in python 3.x.

    To make your code work in both Python 2 and 3 you can do something like this:

    try:
        # for Python2
        from Tkinter import *
    except ImportError:
        # for Python3
        from tkinter import *
    

    However, PEP8 has this to say about wildcard imports:

    Wildcard imports ( from <module> import * ) should be avoided
    

    In spite of countless tutorials that ignore PEP8, the PEP8-compliant way to import would be something like this:

    import tkinter as tk
    

    When importing in this way, you need to prefix all tkinter commands with tk. eg: root = tk.Tk(), etc. This will make your code easier to understand at the expense of a tiny bit more typing. Given that both tkinter and ttk are often used together and import classes with the same name, this is a Good Thing. As the Zen of python states: “explicit is better than implicit”

    Note: The as tk part is optional, but lets you do a little less typing: tk.Button(…) vs tkinter.Button(…)

    Answered on November 23, 2018.
    Add Comment

    You can try this  solution:

        A  module is called tkinter, not Tkinter, in 3.x.

    Answered on November 23, 2018.
    Add Comment

    Here the answer is:

        I can  Rewrite the  code as follows with Tkinter as tkinter (lowercase) for 3.x:

    from tkinter import *
     
    root = Tk()
     
    w = Label(root, text="Hello, world!")
    w.pack()
     
    root.mainloop()
    

     

    Answered on November 23, 2018.
    Add Comment
    from Tkinter import *
    
    root = Tk()
    w = Label(root, text="Hello, world!")
    w.pack()
    root.mainloop()

    The shell reports this error:

    Traceback (most recent call last):
    File "<pyshell#9>", line 1, in <module>
    from Tkinter import *
    ImportError: No module named Tkinter
    Answered on April 17, 2019.
    Add Comment


  • Your Answer

    By posting your answer, you agree to the privacy policy and terms of service.