Многие GUI наборы инструментов (включая tkinter
) не являются поточно-ориентированными; поэтому вам не следует отправлять вызовы GUI из нескольких потоков.
Если вы хотите узнать, почему программа работает медленно, обычно вам нужно профиль . Профилировщик - это инструмент, который помогает вам увидеть, где программа проводит свое время Python имеет встроенный профилировщик в виде модуля cProfile
. Например, для профилирования моего скрипта unlock-excel.py
я бы использовал следующую команду:
python3 -m cProfile -s cumulative unlock-excel.py ~/foo.xlsm | less
Он также производит вывод для tkinter
программ, таких как unlock-excel.pyw
;
python3 -m cProfile -s cumulative unlock-excel.pyw
В последнем случае tkinter
вызовы будут отображаться, например, как __init__.py:1281(mainloop)
или {method 'call' of '_tkinter.tkapp' objects}
.
С этим вы сможете определить, медлительность в вашем коде или если это происходит в tkinter
.