| Store | Cart

Re: Getting IDLE to use correct Tcl/Tk on MacOSX 10.6?

From: Ned Deily <n...@python.org>
Thu, 29 Sep 2016 17:48:48 -0400
On 2016-09-27 18:47, Gregory Ewing wrote:
> I don't normally use IDLE, but I had occasion to use it> on MacOSX 10.6 to answer someone's question, and of course> it didn't work properly due to Apple's broken Tcl/Tk.> > I followed the advice to install ActiveState Tcl 8.5.18.0,> but my Python still wants to use Apple's Tcl.> > How do I persuade Python to use the new one I've installed?> It's a framework install of Python 3.5 that I compiled> myself. Do I need to rebuild it to get it to pick up the> right Tcl? Or is there an environment variable I can set?

As you probably know, on OS X the dynamic load library paths linked into
executables and the like are normally absolute paths.  This applies to
_tkinter.so.  You can check the path with otool -L.

$ python3.5 -c "import _tkinter; print(_tkinter.__file__)"
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload/_tkinter.cpython-35m-darwin.so
$ otool -L $(python3.5 -c "import _tkinter; print(_tkinter.__file__)")
/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload/_tkinter.cpython-35m-darwin.so:
	/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl (compatibility
version 8.5.0, current version 8.5.18)
	/Library/Frameworks/Tk.framework/Versions/8.5/Tk (compatibility version
8.5.0, current version 8.5.18)
	/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.0)

The ActiveState Tcl/Tk frameworks are installed in /Library/Frameworks;
your _tkinter was linked with the Apple-supplied versions in
/System/Library/Frameworks. If you rebuild _tkinter after the new
versions are in /Library/Frameworks, everything should be just fine,
since, by default, /Library/Frameworks is searched at link time before
/System/Library/Frameworks.  You could also override the search order at
run time for all frameworks with:

DYLD_FRAMEWORK_PATH=/Library/Frameworks

See man dyld for more info.  Or you might be able to use
install_name_tool to modify the path to the framework.



-- 
https://mail.python.org/mailman/listinfo/python-list

Recent Messages in this Thread
Gregory Ewing Sep 27, 2016 10:47 pm
Ned Deily Sep 29, 2016 09:48 pm
Messages in this thread