michael.odonnell at uam.es
Thu Feb 17 18:51:10 CET 2011
A solution here (but not for beginners to programming) is
to compile python yourself, and tell the compile script
where to look for TCL/TK.
A comment from somewhere else
and 2 years old or so. Hopefully things are still the same:
[Kevin's post of 6.Oct, 02:58]
You can avoid this problem by building Python yourself and putting
/Library/Frameworks first on the search path for Tcl/Tk. Look in
setup.py in the source code, around line 1438 (in the
'detect_tkinter_darwin' function), and either comment out
/System/Library or put it underneath /Library/Frameworks. This is what
the official build from Python.org should do--look first in
/Library/Frameworks and then fall back on /System/Library/Frameworks.
I'm not sure why it doesn't.
On Thu, Feb 17, 2011 at 5:29 PM, David Cortesi <davecortesi at gmail.com> wrote:
>> On Thu, Feb 17, 2011 at 2:33 AM, Ned Deily <nad at acm.org> wrote:
>> That's not quite accurate. With Mac OS X 10.6 (Snow Leopard), Apple
>> distributes both a Tcl/Tk 8.4 and 8.5 and does not distribute a Python
>> 3.x, only Python 2.6 and 2.5. If you are using a Python 3.1.x installer
>> for Mac OS X from python.org, it is linked only with Tk 8.4, although
>> you can install a more recent version of Tcl/Tk 8.4 from ActiveState.
>> Python 3.2, which is scheduled to be officially released this weekend,
>> will have two OS X installers, one only for OS X 10.6 and linked with
>> Tcl/Tk 8.5. However, there are a number of serious problems with the
>> version of Tcl/Tk 8.5 currently supplied by Apple with OS X 10.6; to
>> successfully use tkinter (and IDLE) with this version you must also
>> install the most recent ActiveState Tcl/Tk 8.5.9 version for OS X.
> Thank you for clarifying. However, I believe I will stand by my closing
> sentence which you did not quote, "This is a long-standing problem with no
> simple solution for the beginner." (Georges, who asked the original
> question, is clearly a beginner.)
> I am pleased to hear that the next Py3 will begin to recognize this problem
> with "two installers" but it is not clear from your brief description how
> this will help. If both installers follow the former practice, of
> hard-coding the path to /System/Frameworks/(etc) into the tkinter module,
> neither will be able to use the ActiveState Tcl, which doesn't install into
> /System. For Python 3.1, the only solution I found was to use ActiveState's
> latest Python with ActiveState's latest Tcl/Tk.
> Will the new python.org package do something smart, like finding all Tcl/Tk
> frameworks at install time and offering the user a choice? Or by using a
> shell variable in tkinter to locate Tcl/Tk dynamically at run time?
> Dave Cortesi
> Tkinter-discuss mailing list
> Tkinter-discuss at python.org
More information about the Tkinter-discuss