Simple tkinter query about creating a tk,StringVar() failure

MRAB python at mrabarnett.plus.com
Sat Feb 6 20:52:44 EST 2016


On 2016-02-07 00:38:14, paul.hermeneutic at gmail.com wrote:

>I know this may be more suited to the tutor list. I tried to
>subscribe, but no response yet.
>
>Why does this interactive instantiation fail when it seems to work
>when run in a script?
>
>(py35-64) C:\src\pygui>python
>Python 3.5.1 (v3.5.1:37a07cee5969, Dec  6 2015, 01:54:25) [MSC v.1900
>64 bit (AMD64)] on win32
>Type "help", "copyright", "credits" or "license" for more information.
>>>>  import tkinter as tk
>>>>  name = tk.StringVar()
>Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 329,
>in __init__
>     Variable.__init__(self, master, value, name)
>   File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 233,
>in __init__
>     self._root = master._root()
>AttributeError: 'NoneType' object has no attribute '_root'
It's just down to the way that tkinter works.

It's normally called within a GUI program which has windows and an event 
loop, and it's trying to get the root (top-level) window, but there 
isn't one.



More information about the Python-list mailing list