IDLE warns against an old TCL version even though I've installed a newer version
Asked Answered
V

8

19

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
Valise answered 15/1, 2014 at 5:4 Comment(6)
Likely you need to figure out where the ActiveTCL binaries are and adjust your path... 'which tclsh' will probably help.Educt
@NiallByrne: In response to entering which tclsh at the terminal prompt, the following path shows: /usr/bin/tclsh. However, there is no file nor directory named tclsh under my /usr/bin directory. The closest match is a program named tcsh.Valise
@NiallByrne: Ok, I don't know why I couldn't locate the file tclsh before, but now I can. I have three tcl-related files in my /usr/bin directory: tclsh, tclsh8.4, tclsh8.5 . Could you please help me proceed from this point? Also: is it a problem that there's no tclsh8.6?Valise
@NiallByrne: So I have located the directory containing the tclsh8.6 command and redirected the symbolic link at /usr/bin/tclsh to point to it. Nevertheless, running idle yields the same warning as before.Valise
tcsh is entirely different to tclsh; no relation at all (apart from the near match in letters in the name)Polyploid
ActiveTcl should be using a Framework installation on OSX. What happens if you look for /Library/Frameworks/Tcl.framework/Versions/8.6/Tcl? (That's where it is on my system.)Polyploid
V
12

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

  1. The current python installations for OS X do not recognize the latest ActiveTcl version (namely 8.6).
  2. 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:

  1. Install the latest 8.5 ActiveTcl version.
  2. Reinstall python.

I have followed these steps and now everything seems to work.

Valise answered 17/1, 2014 at 9:12 Comment(0)
A
10

I have OS X 10.10.5.

  1. I installed Python 3.4.3.
  2. Ran IDLE, got warning, "The version of Tcl/Tk (8.5.9) in use may be unstable."
  3. Went to [Active State][1] and downloaded the suggested, "Download ActiveTcl 8.6.4 for Mac OS X (10.5+, x86_64/x86)".
  4. Ran installer for "ActiveTcl8.6.4.1.299124-macosx10.5-i386-x86_64-threaded.dmg"
  5. Re-installed: python-3.4.3-macosx10.6.pkg
  6. Ran IDLE - still same message, "The version of Tcl/Tk (8.5.9) in use may be unstable.".
  7. Checked - Yes, 8.6.4 is there.
  8. Went back to Active State and got prior version: "ActiveTcl8.5.18.0.298892-macosx10.5-i386-x86_64-threaded.dmg"
  9. Re-installed: python-3.4.3-macosx10.6.pkg
  10. Ran IDLE - No warning.
Adjustment answered 6/9, 2015 at 16:16 Comment(3)
Followed these steps and it worked like a charm. The prior version required for step 8 can be found at downloads.activestate.com/ActiveTcl/releases/8.5.18.0.Tonyatonye
I was uninstalling and reinstalling python with homebrew and that didn't fix the error. When I used the current .pkg, it worked.Euphorbia
Am on MacOS 10.14.3 using Python 3.7.2 and can confirm, I tried several suggestions but only this one worked.Defoe
U
8

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
Unpeopled answered 8/11, 2016 at 14:1 Comment(1)
I tried with with python instead of python3 and IDLE crashes when I try to open it now. Any suggestions?Pellitory
A
1

Try downloading the version that Python is looking for: 8.5.X. Version 8.6.X is not recognized.

Afghanistan answered 26/11, 2014 at 22:26 Comment(0)
U
1

I faced the same problem. You can solve this by downloading the Active Tcl 8.5.17 version rather than the lastest version.

Unparalleled answered 3/1, 2015 at 21:8 Comment(0)
T
0

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.

Tambour answered 18/2, 2015 at 12:21 Comment(0)
J
0

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.

Jubilant answered 9/12, 2017 at 20:36 Comment(0)
S
0

How I resolved the issue:

First we need to install ActiveTcl8.5.18.0

  1. Download: https://www.activestate.com/activetcl/downloads

enter image description here

  1. Run the file that you downloaded.

  2. 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.

enter image description here

  1. Click Open in the context-menu.
  2. Click Open in the pop-up dialog (the left, NON-blue button)
  3. Install.

If that does not resolve the issue, we need to uninstall python. This article really helped me.

Stedt answered 17/2, 2018 at 17:35 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.