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 brew
instalació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?
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.
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
Esta solución de Stack Overflow resolvió el problema:
brew tap homebrew/dupes
brew install tcl-tk
brew install python --with-tcl-tk
--with-tcl-tk
desapareció.brew tap homebrew/dupes
también está en desuso
Monomeeth
boreal
Monomeeth
boreal
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 .