A question from a beginner just starting with Tkinter. I downloaded it and wrote the tutorial Hello World
program, and it ran fine in IDLE. However, when I saved the program and ran it using command prompt, they all returned NameError: name 'tk' is not defined.
I also tried going to the main Python command program and manually entering the code, and it worked fine.
It only fails to recognize Tk()
when run through command prompt or through double clicking.
I have no idea what could be going on here.
The code is simply the basic Hello World
program that all tutorials teach you to write:
from Tkinter import *
root = Tk()
w = Label(root, text="Hello World")
w.pack()
root.mainloop()
Also because I know everybody is going to answer with it, I am not using 3.x and I have tried running the program with calling it "tkinter," it simply doesn't find the module.
Apparently this program works on other people's computers, so it's not a problem with the code itself. Does anyone have any idea what could be causing this issue?
I was having the same problem and couldn't find any solution until I simply changed this:
to:
I don't know the capital T works for other but under Windows 64 bit Python 3.4.1, it should be "tkinter"
Also check your file name if you created tkinter.py before, then it can also cause same issue. It would be imported first
Works fine in my computer .
Since You said : NameError: name 'tk' is not defined.
here tk with a small 't'
You might have written
instead of :
Check Capital 'T'
Python is distributed with different builds, some of which include Tkinter and some don't.
What your describing is symptomatic of having multiple Python's on your system. When you run IDLE, obviously you're running one with Tkinter installed. The one available at the command-line apparently doesn't. One way to confirm this is to try to launch IDLE from the command-line:
python -m idlelib.idle
. If IDLE doesn't launch, the Tkinter isn't installed and you will need to find a path to the version that does run IDLE successfully.I suppose this is something to do with
For
python 2.x
use thisOR
For
Python 2.x
use:For
Python 3
use: