Python кнопка из tkinter выполняет функцию из command до нажатия на кнопку

Функция buttons_logic циклично выполняется раз в 1 секунду, при этом кнопку я не нажимаю, что я делаю не так? Когда я пытаюсь самостоятельно нажать на клавишу, функция так же выполняется

# -*- coding: utf-8 -*-
from Tkinter import *

root = Tk()
def buttons_logic():
    print('buttons_logic')

widget_var = Button(root, bg = "green4",\
                    fg = "white", font = "Arial 9 bold", \
                    width = 8, text = 'вкл\выкл',\
                    command = buttons_logic)
widget_var.pack(padx = 1, pady = 1, side = LEFT) 

root.mainloop()

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Анатолий Михеенко

У меня установлен python 2.7.15, и виртуальная среда virtualenv, скрипт запускал через неё, изначально вылезала ошибка This probably means that Tcl wasn't installed properly. исправил ошибку путем добавления переменной set "TCL_LIBRARY=c:\Miscellanea\Programmig\Programming-Python\Python_2.7\tcl\tcl8.5" в файл activate.bat, но это тоже не исправило ситуацию, в итоге помогло вызывать функцию обработки нажатия на кнопку не через аргумент command, а через функцию bind

# -*- coding: utf-8 -*-
from Tkinter import *

root = Tk()  
def buttons_logic(event):
    print('buttons_logic')

widget_var = Button(root, bg = "green4",\
                    fg = "white", font = "Arial 9 bold", \
                    width = 8, text = 'вкл\выкл')
widget_var.pack(padx = 1, pady = 1, side = LEFT) 
widget_var.bind("<Button-1>", buttons_logic)

root.mainloop()
`
→ Ссылка