Я сейчас изучаю Tkinter и пытаюсь разобраться с моей первой проблемой, но найти Google не помогло.
Я запускаю этот код в Mac OS X 10.15.1 (Catalina)
Я использую Python 3.7, и мой код выглядит так (много шаблонов в соответствии со стандартами PEP8):
"""
Experiments in tkinter
"""
import tkinter as tk
def main():
"""
Main entrypoint
"""
tk._test()
if __name__ == "__main__":
main()
Это выводит на консоль следующее предупреждение:
ПРЕДУПРЕЖДЕНИЕ О УСТАРЕВАНИИ: Системная версия Tk устарела и может быть удалена в будущем выпуске. Пожалуйста, не полагайтесь на это. Установите TK_SILENCE_DEPRECATION = 1 для подавления этого предупреждения.
Также отображается окно с полностью пустыми кнопками:
tkinter._test()">
СНасколько я понимаю, на этих кнопках должно быть написано «Click Me» и «Quit».
Также, когда я нажимаю верхнюю кнопку, она мигает черным в течение секунды, например так:

После чего кнопка шире, чем раньше:

Я предполагаюошибка версии Tk может быть связана с выходным поведением. Однако я не могу найти способ обновить Tk. Что мне здесь делать?
Обновление
Увидев ответ @ ShayneLoyd (предполагая, что мне нужна обновленная версия Python с обновленной версией Tk), я начал осматриваться еще немного и нашел этот пост на досках обсуждений Apple , в котором говорится, что вы можете использовать homebrew для установки версии Python, которая ссылается на собственную установленную версию Tk для homebrew. Я попробовал это, и это не удалось, поэтому я решил проблему с Google и обнаружил этот пост StackOverflow , который, казалось, предлагал мне установить ActiveTcl , и он будет работать.
Я установил ActiveTcl из ActiveState и вернулся к своему проекту. Сначала я запустил его так:
$> cd ~/Source/experiments/python/tkinter
$> ./test.py
Это на самом деле сработало ! Я мог читать кнопки, и он вел себя так, как должен. Затем я понял, что не использую pipenv, поэтому я провел быструю проверку:
$> pipenv run ./test.py
Теперь я вернулся к состоянию сбоя. Я обновил свой скрипт для отображения версии Tcl и Tk и, конечно же, когда я использовал pipenv, он загружал Tcl / Tk 8.5.9, но когда я не использовал pipenv, он загружал 8.6.9
Так как жеЯ сейчас исправлю pipenv?