Installation conflict for ActiveTcl/Tk

Posted by saul2 on 2014-11-29 14:11

I just installed activeTcl 8.6.3 on my Mac mini running Yosemite, version 10.10.1, in order to be able to use Tkinter with python. One program I've written, which runs fine on a linux machine crashes when I try to run it with the following messages:

objc[5570]: Class TKApplication is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.6/Tk. One of the two will be used. Which one is undefined.
objc[5570]: Class TKMenu is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.6/Tk. One of the two will be used. Which one is undefined.
objc[5570]: Class TKContentView is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.6/Tk. One of the two will be used. Which one is undefined.
objc[5570]: Class TKWindow is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.6/Tk. One of the two will be used. Which one is undefined.
Segmentation fault: 11

I went to uninstall ActiveTcl 8.5, but I can't find the uninstall script. This issue is discussed at https://community.activestate.com/node/9010 but it didn't help me, because I don't have a Frameworks folder in my ~/Library directory, and in the /Library folder, I can find the framework but the uninstall script is not there.

grahams
ActiveState Staff
Mon, 2014-12-01 08:23

/System/Library/Frameworks/... is the Apple version of Tcl. Removing software provided by Apple is not recommended.

If you want to use Tkinter, make sure you know which version of Tcl/Tk your Python has been compiled to require. If you pick the wrong Tcl/Tk, you will not get something that works.

ActivePythons are still compiled to require a recent ActiveTcl 8.5, not any ActiveTcl 8.6. Last I looked, that was true of OpenSource Pythons too. I think you're getting those messages because the Apple Tcl/Tk 8.5 is too old to be useful, but the only alternative is an incompatible Tcl 8.6, and Tkinter can't choose between two bad options, so it crashes.

Try uninstalling the ActiveTcl 8.6, installing an ActiveTcl 8.5 from the current supported versions, and making sure it's on your $PATH ahead of the Apple Tcl/Tk as described in the post-installation configuration section of the ActiveTcl installation guide.