I have installed ActiveTcl8.6.1.1.297588-macosx10.5-i386-x86_64-threaded
on my OS X 10.9.1 . However, when I launch IDLE by running idle3
from the terminal, the following warning shows in the IDLE window:
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.
Why is the newer ActiveTcl version that I have installed not recognized by IDLE? How can I rectify this?
EDIT: Further details.
$ 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
According to the "How Python Chooses Which Tk Library To Use" section of the "IDLE and tinter with Tcl/Tk on Mac OS X" page on the official python website,
The Python for Mac OS X installers downloaded from this website dynamically link at runtime to Tcl/Tk Mac OS X frameworks. The Tcl/Tk major version is determined when the installer is created and cannot be overridden. The Python 64-bit/32-bit Mac OS X installers for Python 3.4.x, 3.3.x, 3.2.x, and 2.7.x dynamically link to Tcl/Tk 8.5 frameworks.
So it seems that
- The current python installations for OS X do not recognize the latest ActiveTcl version (namely 8.6).
- The Tcl/Tk version used by python is hard-wired during the python installation procedure and cannot be changed later.
From these observation the solution is clear:
- Install the latest 8.5 ActiveTcl version.
- Reinstall python.
I have followed these steps and now everything seems to work.
This worked for me
WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
brew remove python3
brew install homebrew/dupes/tcl-tk
brew install python3 --with-tcl-tk
brew linkapps python3
Try downloading the version that Python is looking for: 8.5.X. Version 8.6.X is not recognized.
I faced the same problem. You can solve this by downloading the Active Tcl 8.5.17 version rather than the lastest version.
I had this same issue after launching IDLE on OSX 10.10 with python 2.7.9 / 3.4.1 installed (and seeing the same $PATH variable information as the original poster).
I went to this python support page:
I referenced their "summary of current recommendations" chart to determine the Tcl/Tk necessary; it linked to a downloadable .DMG, which I installed and then IDLE ran without warnings.
I did not have to reinstall python.
This seems to be broken on High Sierra. After following the steps idle3 crashes when opening a file with "Invalid or prematurely freed autorelease pool" after issuing a warning that FIFinderSyncExtensionHost is installed in two places.
How I resolved the issue:
First we need to install ActiveTcl8.5.18.0
- Download: https://www.activestate.com/activetcl/downloads
Run the file that you downloaded.
CTRL+CLICK (both Mac and Windows) to open a context-menu. If you get an error can't be opened, because it is from unidentified developer - you need to CTRL+CLICK, don't double-click.
- Click Open in the context-menu.
- Click Open in the pop-up dialog (the left, NON-blue button)
- Install.
If that does not resolve the issue, we need to uninstall python. This article really helped me.