I am trying to create a file chooser dialog box. However, when I try to import tkMessageBox
in Python 3, I get an error claiming that the module does not exist.
import tkMessageBox
# ImportError: No module named 'tkMessageBox'
I get similar errors when trying to import other Tkinter modules in Python 3.
import Tkinter # No module named 'Tkinter'
import tkColorChooser # No module named 'tkColorChooser'
import tkFileDialog # No module named 'tkFileDialog'
How do I import Tkinter modules in Python 3? What are the new module names?
Using import tkinter as tkIt comes with all the modules defined in tkinter. However, to save the major typing efforts, we import the tkinter library with some acronym further that can be used to create an instance of widgets. Thus, the application structures become more aesthetical by using the import tkinter as tk.
The tkinter package (“Tk interface”) is the standard Python interface to the Tcl/Tk GUI toolkit. Both Tk and tkinter are available on most Unix platforms, including macOS, as well as on Windows systems.
The Tkinter
package from Python 2 has been renamed to tkinter
in Python 3, as well as other modules related to it.
Here is a list of renamed modules:
Tkinter
→ tkinter
tkMessageBox
→ tkinter.messagebox
tkColorChooser
→ tkinter.colorchooser
tkFileDialog
→ tkinter.filedialog
tkCommonDialog
→ tkinter.commondialog
tkSimpleDialog
→ tkinter.simpledialog
tkFont
→ tkinter.font
Tkdnd
→ tkinter.dnd
ScrolledText
→ tkinter.scrolledtext
Tix
→ tkinter.tix
ttk
→ tkinter.ttk
I advise you to learn how to dynamically browse the modules with the dir
command. If you are under windows, configure Python to use readline module to get auto-completion and make it much easier to list available classes in a module.
For a description of each module, refer to the official Python documentation. (Tkinter
in Python 2.x, tkinter
in Python 3.x)
I had a script which had different imports of Python 2.* Tkinter so browsing a but I see that the answer are all scattered. Here a small summary with a safe Script for using both Python versions.
try: # Python 2.7
import Tkinter as tk
import tkColorChooser as color
import tkCommonDialog as cdialog
import Tkconstants as const
import Tkdnd as dnd
import tkFileDialog as fdialog
import tkFont as font
import tkMessageBox as msgbox
import ScrolledText as stext
import tkSimpleDialog as sdialog
import Tix as tix
import ttk
except ImportError: # Python 3.*
import tkinter as tk
from tkinter import (
colorchooser as color,
commondialog as cdialog,
constants as const,
dialog,
dnd,
filedialog as fdialog,
font,
messagebox as msgbox,
scrolledtext as stext,
simpledialog as sdialog,
tix,
ttk
)
ModuleNotFoundError: No module named 'Tkinter'
ModuleNotFoundError: No module named 'tkMessageBox'
ModuleNotFoundError: No module named 'ScrolledText'
ModuleNotFoundError: No module named 'tkFileDialog'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With