Which tkinter modules were renamed in Python 3?
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?
Solution 1:
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)
Solution 2:
Quick Script for using Tkinter / tkinter for Python 2. & Python 3.**
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
)
List of ModuleNotFoundError Errors (When Running Python 3.)
ModuleNotFoundError: No module named 'Tkinter'
ModuleNotFoundError: No module named 'tkMessageBox'
ModuleNotFoundError: No module named 'ScrolledText'
ModuleNotFoundError: No module named 'tkFileDialog'