In 2008, Guido van Rossum, the author of Python, forked the language into two branches—2.x and 3.x. This was done to clean up the language and make it more consistent.
Python 3.x broke backward compatibility with Python 2.x. For example, the print statement in Python 2.x was replaced by the print() function that would now take arguments as parameters.
We coded all the Tkinter programs in Python Version 3.x. However, in case you need to maintain or write new Tkinter programs in Python 2.x, the transition should not be very difficult.
The core functionality of Tkinter remains the same between 2.x and 3.x. The only significant change to Tkinter when moving from Python 2.x to Python 3.x involves changing the way the Tkinter modules are imported.
Tkinter has been renamed as tkinter in Python 3.x (capitalization has been removed).
Note that in 3.x, the lib-tk directory was renamed to tkinter. Inside this directory, the Tkinter.py file was renamed to __init__.py, thus making tkinter an importable module.
Accordingly, the biggest difference lies in the way you import the tkinter module into your current namespace:
import Tkinter # for Python 2
import tkinter # for Python 3
Furthermore, note the following changes.
Note how the Python 3 version is cleaner, more elegant, and more systematic in its naming conventions regarding the use of lowercase names for its modules:
Python 3 | Python 2 |
import tkinter.ttk OR from tkinter import ttk |
import ttk |
import tkinter.messagebox | import tkMessageBox |
import tkinter.colorchooser | import tkColorChooser |
import tkinter.filedialog | import tkFileDialog |
import tkinter.simpledialog | import tkSimpleDialog |
import tkinter.commondialog | import tkCommonDialog |
import tkinter.font | import tkFont |
import tkinter.scrolledtext | import ScrolledText |
import tkinter.tix | import Tix |
The following version will work for both cases:
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
try:
import tkinter.messagebox
except:
import tkMessageBox