Как связать дистрибутив 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
Таким образом, полный рецепт для решения проблемы:
- Активировать / установить кран homebrew-dupes
- Установить tcl-tk
- Установите доморощенный питон с помощью homebrew tcl-tk
Команды для выполнения следующие:
brew tap homebrew/dupes
brew install tcl-tk
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 и убедитесь, что она не имеет поврежденного местоположения