IDLE предупреждает против старой версии TCL, хотя я установил более новую версию

Я установил ActiveTcl8.6.1.1.297588-macosx10.5-i386-x86_64-threaded на моем OS X 10.9.1 . Тем не менее, когда я запускаю IDLE, запустив idle3 из терминала в окне IDLE отображается следующее предупреждение:

Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
>>> 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.

Почему новая версия ActiveTcl, которую я установил, не распознается IDLE? Как я могу исправить это?

РЕДАКТИРОВАТЬ: Более подробная информация.

$ echo $PATH
/Library/Frameworks/Python.framework/Versions/3.3/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

$ which tclsh
/usr/bin/tclsh

$ ls -l /usr/bin/tclsh*
lrwxr-xr-x  1 root  wheel  17 Jan 15 10:45 /usr/bin/tclsh -> /usr/bin/tclsh8.6
lrwxr-xr-x  1 root  wheel  67 Oct 25 19:59 /usr/bin/tclsh8.4 -> ../../System/Library/Frameworks/Tcl.framework/Versions/8.4/tclsh8.4
lrwxr-xr-x  1 root  wheel  67 Oct 25 19:59 /usr/bin/tclsh8.5 -> ../../System/Library/Frameworks/Tcl.framework/Versions/8.5/tclsh8.5
lrwxr-xr-x  1 root  wheel  23 Jan 15 10:45 /usr/bin/tclsh8.6 -> /usr/local/bin/tclsh8.6

$ ls -l /usr/local/bin/tclsh*
lrwxr-xr-x  1 root  admin      8 Jan 15 10:40 /usr/local/bin/tclsh -> tclsh8.6
-rwxr-xr-x  1 root  admin  41716 Oct 27 04:45 /usr/local/bin/tclsh8.6

8 ответов

Решение

В соответствии с разделом "Как Python выбирает, какую библиотеку Tk использовать" на странице "IDLE и tinter with Tcl/Tk в Mac OS X" на официальном сайте python,

Установщики Python для Mac OS X, загруженные с этого веб-сайта, динамически связываются во время выполнения с платформами Tcl/Tk Mac OS X. Основная версия Tcl / Tk определяется при создании установщика и не может быть переопределена. Установщики Python для 64-битной /32-битной Mac OS X для Python 3.4.x, 3.3.x, 3.2.x и 2.7.x динамически связаны с фреймворками Tcl/Tk 8.5.

Так что кажется, что

  1. Текущие установки Python для OS X не распознают последнюю версию ActiveTcl (а именно 8.6).
  2. Версия Tcl / Tk, используемая python, жестко привязана во время процедуры установки python и не может быть изменена позже.

Из этих наблюдений решение ясно:

  1. Установите последнюю версию 8.5 ActiveTcl.
  2. Переустановите питон.

Я следовал за этими шагами, и теперь все, кажется, работает.

У меня OS X 10.10.5.

  1. Я установил Python 3.4.3.
  2. Запустил IDLE, получил предупреждение: "Используемая версия Tcl/Tk (8.5.9) может быть нестабильной".
  3. Перешел в [Active State][1] и скачал предложенное "Скачать ActiveTcl 8.6.4 для Mac OS X (10.5+, x86_64/x86)".
  4. Запустил установщик для "ActiveTcl8.6.4.1.299124-macosx10.5-i386-x86_64-threadaded.dmg"
  5. Переустановлен: python-3.4.3-macosx10.6.pkg
  6. Run IDLE - все то же сообщение: "Используемая версия Tcl/Tk (8.5.9) может быть нестабильной".
  7. Проверено - Да, 8.6.4 есть.
  8. Вернулся в активное состояние и получил предыдущую версию: "ActiveTcl8.5.18.0.298892-macosx10.5-i386-x86_64-threadaded.dmg"
  9. Переустановлен: python-3.4.3-macosx10.6.pkg
  10. Побежал IDLE - без предупреждения.

Это сработало для меня

ВНИМАНИЕ: Используемая версия Tcl/Tk (8.5.9) может быть нестабильной.

brew remove python3

brew install homebrew/dupes/tcl-tk

brew install python3 --with-tcl-tk

brew linkapps python3

Я столкнулся с той же проблемой. Вы можете решить эту проблему, загрузив версию Active Tcl 8.5.17, а не последнюю версию.

Попробуйте загрузить версию, которую ищет Python: 8.5.X. Версия 8.6.X не распознается.

Как я решил проблему:

Сначала нам нужно установить ActiveTcl8.5.18.0

  1. Загрузить: https://www.activestate.com/activetcl/downloads

  1. Запустите файл, который вы скачали.

  2. CTRL + CLICK (как Mac, так и Windows), чтобы открыть контекстное меню. Если вы получаете сообщение об ошибке, не может быть открыто, потому что это от неопознанного разработчика - вам нужно нажать CTRL + CLICK, не нажимайте дважды.

  1. Нажмите Открыть в контекстном меню.
  2. Нажмите Открыть во всплывающем диалоговом окне (левая, НЕ синяя кнопка)
  3. Установить.

Если это не решает проблему, нам нужно удалить Python. Эта статья действительно помогла мне.

У меня возникла такая же проблема после запуска IDLE в OSX 10.10 с установленным python 2.7.9 / 3.4.1 (и при просмотре той же информации о переменной $PATH, что и в оригинальном постере).

Я пошел на эту страницу поддержки Python:

Я сослался на их таблицу "Сводка текущих рекомендаций", чтобы определить необходимые Tcl/Tk; он связан с загружаемым.DMG, который я установил, а затем IDLE запустил без предупреждений.

Мне не пришлось переустанавливать Python.

Похоже, что это сломано на Высокой Сьерре. После выполнения этих шагов происходит сбой idle3 при открытии файла с "Недопустимым или преждевременно освобожденным пулом автоматического выпуска" после выдачи предупреждения о том, что FIFinderSyncExtensionHost установлен в двух местах.

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