ADVERTENCIA: La versión de Tcl/Tk (8.5.9) en uso puede ser inestable

Estoy ejecutando macOS Sierra 10.12.2 y estoy tratando de hacer que el IDLE de Python funcione correctamente con Tcl/Tk. Este es el mensaje de error que recibo cuando abro IDLE:

Python 2.7.13 (default, Dec 18 2016, 07:03:39) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] 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.

Al visitar el enlace en el mensaje de error, leí la documentación e instalé Tcl/Tk versión 8.5.18.0 de esta fuente. Quizás sea importante tener en cuenta que estoy ejecutando una brewinstalación de Python 2.7.13. Después de instalar DMG para 8.5.18.0, el terminal bash y Python no reconocen la actualización de Tcl/Tk (tenga en cuenta que reconoce Tcl/Tk (8.5.9) en lugar de 8.5.18.0. ¿Cómo puedo obtener IDLE y el instalación de python actualizada desde homebrew para reconocer el Tcl/Tk 8.5.18.0 actualizado? En otras palabras, ¿cómo puedo resolver el mensaje de advertencia?

Disculpe si no entendí bien su pregunta, pero además del hecho de que recibe la ADVERTENCIA: La versión de Tcl/Tk (8.5.9) en uso puede ser un mensaje inestable, ¿realmente tuvo algún problema con el uso de IDLE de Python para que funcione correctamente con Tcl/Tk 8.5.9?
Tiene errores: he tenido varios accidentes inesperados.
Gracias. Veo que está ejecutando Python 2.7.13. ¿Hay alguna razón por la que está ejecutando esa versión en lugar de, por ejemplo, Python 3.6.0?
Es la última versión de Python 2.7 instalada con brew, que prefiero sobre Python 3. También es la versión recomendada de Python para jugar bien con la versión ActiveTcl 8.5.18.0, según python.org/download/mac/tcltk .

Respuestas (3)

De acuerdo con esta página de Python Software Foundation :

Los instaladores de Python para Mac OS X descargados de este sitio web se vinculan dinámicamente en tiempo de ejecución a los marcos Tcl/Tk macOS. La versión principal de Tcl/Tk se determina cuando se crea el instalador y no se puede anular. Los instaladores de Mac OS X de Python de 64 y 32 bits para Python 3.6.x, 3.5.x y 2.7.x se vinculan dinámicamente a los marcos Tcl/Tk 8.5. Los instaladores de Python solo de 32 bits para Mac OS X se vinculan dinámicamente a los marcos Tcl/Tk 8.4.

En cualquier caso, la vinculación dinámica se produce cuando se importa por primera vez tkinter (Python 3) o Tkinter (Python 2) (específicamente, el módulo de extensión interno _tkinter C). De forma predeterminada, el enlazador dinámico de macOS busca primero en /Library/Frameworks para los marcos Tcl y Tk con la versión principal adecuada. Esta es la ubicación estándar para marcos de trabajo de terceros o creados a partir de fuentes, incluidas las versiones de ActiveTcl. Si no se encuentran allí los marcos de la versión principal adecuada, el enlazador dinámico busca la misma versión en /System/Library/Frameworks, la ubicación de los marcos proporcionados por Apple que se envían con macOS. (Tenga en cuenta que normalmente no debe modificar ni eliminar archivos en /System/Library).

Fuente: busque el subtítulo Cómo elige Python qué biblioteca Tk usar en https://www.python.org/download/mac/tcltk/#activetcl-8-5-18-0

Debido a esto, estoy 99,9% seguro de que ahora que ha actualizado a Tcl/Tk 8.5.18.0, lo que debe hacer es volver a instalar Python 2.7.13.

La razón por la que creo que esto resolverá su problema es que al leer la información que cité, está claro que la versión Tcl/Tk utilizada por Python se elige durante el proceso de instalación y no se puede cambiar sin instalar Python nuevamente.

Actualización 2018

Python/tcl-tk proporcionado por el sistema siempre mostrará ese error.

PODRÍA descargar un tcl-tk actualizado y una instalación actualizada de python (necesita reinstalar python para enlazar con el nuevo tcl-tk; ¡instale tcl/tk primero!).

Mi método PREFERIDO es usar Homebrew .

desinstalar la versión de desarrollo de tcl-tk

brew uninstall tcl-tk --devel

instalar tcl-tk

brew install tcl-tk

desinstale python y python3 (el enlace tcl-tk ocurre cuando se instala python, por lo que debemos volver a instalar una vez que tengamos tcl-tk instalado)

brew uninstall python
brew uninstall python3

reinstalar python y python 3

brew install python
brew install python3

prueba

brew test python
brew test python3

pruebe IDLE (puntos "inactivos" al sistema instalado python/tcl-tk, ya no lo usaremos, pero también podríamos dejarlo allí para evitar problemas futuros)

idle2
idle3
Sí. Funciona (Catalina 10.15.4)

Esta solución de Stack Overflow resolvió el problema:

brew tap homebrew/dupes
brew install tcl-tk
brew install python --with-tcl-tk
Esto ya no es posible ya que la opción --with-tcl-tkdesapareció.
el comando brew tap homebrew/dupestambién está en desuso