Подтвердить что ты не робот

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

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

brew install python

но IDLE дает предупреждение

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 IDLE python, который продолжает использовать 8.5.9.

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

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

4b9b3361

Ответ 1

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

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

Здесь ссылка на homebrew-dupes:
https://github.com/Homebrew/homebrew-dupes
и здесь формула для tcl-tk
 https://github.com/Homebrew/homebrew-dupes/blob/master/tcl-tk.rb

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

  • Активировать/установить переключатель homebrew-dupes
  • Установить tcl-tk
  • Установить homebrew python с помощью homebrew tcl-tk

Выполняемые команды:

  • brew tap homebrew/dupes
  • brew install tcl-tk
  • brew install python --with-tcl-tk

Ответ 2

Я могу думать о нескольких беспорядочных решениях -

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

import sys

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

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

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

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

Ответ 3

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

brew info python

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

--with-tcl-tk

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