Как связать дистрибутив ActiveState Tcl/Tk с установленным HomeBrew Python

Я использую macOS 10.12.1 Sierra. Я использую Python 2.7.12, установленный с

brew install python

но холостой ход дает предупреждение

WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.

и, конечно же, он часто падал. 8.5.9 - предустановленная версия macOS.

Я могу загрузить стабильную версию 8.5.18 с веб-сайта ActiveState (как рекомендует python, который работает с установками python с python.org), поскольку они ищут любую другую версию Tcl/Tk, прежде чем прибегнуть к нестабильной версии macOS по умолчанию 8.5.9.).

Однако эта загрузка не влияет на установленный brew Python IDLE, который продолжает использовать 8.5.9.

Что я могу сделать, чтобы связать обновленный Tcl/Tk с Homebrew, или я могу установить Tcl/Tk direct с homebrew?

Я также заметил, что точно такая же проблема возникает при использовании anaconda python, который использует предустановленный Mac tcl/tk 8.5.9, а не установленный пользователем tcl/tk 8.5.18

3 ответа

Решение

tcl-tk может быть установлен через Homebrew, и можно установить Python Homebrew, связанный с этой версией (установлен Homebrew) tcl-tk,
Единственным "барьером" для этого является включение правильного доморощенного крана, так как tcl-tk не найден в сигналах "по умолчанию" в Homebrew.
В самом деле tcl-tk находится в кране, называемом homebrew-dupes, который содержит (цитируйте страницу)

формулы, которые дублируют программное обеспечение MacOS, но могут предоставлять более свежие версии или версии с исправлениями ошибок.

Вот ссылка на доморощенного дупса:
https://github.com/Homebrew/homebrew-dupes
а вот формула для tcl-tk
https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb

Таким образом, полный рецепт для решения проблемы:

  1. Активировать / установить кран homebrew-dupes
  2. Установить tcl-tk
  3. Установите доморощенный питон с помощью homebrew tcl-tk

Команды для выполнения следующие:

  1. brew tap homebrew/dupes
  2. brew install tcl-tk
  3. brew install python --with-tcl-tk

Homebrew - отличный менеджер пакетов, и при установке любого пакета рекомендуется просмотреть информацию.

brew info python

показывает множество опций, которые можно пропустить; но самый важный

--with-tcl-tk

Используйте Tk Homebrew вместо macOS Tk (имеет дополнительную поддержку Какао и потоков)

Я могу придумать пару грязных решений -

1) Вставьте фактическое местоположение установленного модуля в начале пути

import sys

sys.path.insert(1, 'YourTclLocation')

2) Добавить новое местоположение и удалить предыдущее местоположение

import sys
sys.path.append('YourTCLLocation')
sys.path.remove('ProblemLocation')
import Tcl

3) Установите переменную окружения PYTHONPATH в bash и убедитесь, что она не имеет поврежденного местоположения

Другие вопросы по тегам