Моя среда:
macOS 10.13 python 3.7.1 из Homebrew
У меня много причуд Tcl / TK на стандартном Tcl / TK 8.5 под /System/Library/Frameworks/Tcl.framework/Versions/8.5/, и я хотел бы обновить свой Tcl / TK.
Но с этим вопросом я не смог найти никаких рабочих советов по обновлению, в том числе:
IDLE предупреждает об использовании старой версии TCL, даже если я установил более новую версию
Почему мой Python, установленный через домашнее пиво, не включает Tkinter
Как связать дистрибутив ActiveState Tcl / Tk с установленным HomeBrew Python
Мои результаты тестов
--with-tcl-tk больше не работает с последней версией Homebrew. Запуск brew install python --with-tcl-tk по-прежнему указывает на систему Tcl / TK 8.5.9.





После множества неудач я пришел к выводу, что самый простой способ выполнить эту работу - полностью забыть о Homebrew и удалить его пакеты python.
Затем установите последнюю версию ActiveTcl, а затем версию python.org. Версия python.org будет работать поверх последней "Системной" Tcl / TK, которая будет обновлена после установки ActiveTcl. К сожалению, Homebrew игнорирует это.
Текущая версия 3.7.2 с python.org скомпилирована с Tcl / TK 8.6.8:
$ python3
Python 3.7.2 (v3.7.2:9a3ffc0492, Dec 24 2018, 02:44:43)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter as tk
>>> print(tk.Tcl().eval('info patchlevel'))
8.6.8
После обновления исчезли некоторые ошибки, например, кнопки с неправильными отметками в меню.
Также стоит отметить, что последняя версия tcl / TK - 8.6.9, которую можно установить через homebrew. ActiveSlate еще не опубликовал последние двоичные файлы. Так что еще одна вещь, о которой нужно подумать, если вы не используете доморощенное пиво.
Этот пост представляет собой изящный способ:
https://stackoverflow.com/a/60469203/10606936
НЕ НУЖНО использовать установку actviveTk или python.org на python.
Ключевой момент - предоставить правильный ENV для установки.
Такой позор для доморощенного просто решить убрать опции при установке пакетов. Угадайте, что это либо отказ от домашнего питона и установка без менеджера, либо ожидание публикации нового пакета с использованием python и tcl / TK вместе. Спасибо, что поделился.