tcl/tk version confusion with tkinter in Python 2.6, on OS X

Marans njwilson23 at gmail.com
Mon Oct 6 19:15:00 EDT 2008


On Oct 6, 5:58 pm, kevin.wal... at gmail.com wrote:
> On Oct 6, 4:48 pm, njwilso... at gmail.com wrote:
>
>
>
> > I'm having trouble with tkinter on a new installation of Python (2.6),
> > built with the framework option from source that was downloaded from
> > python.org. I'm running OS 10.4 on a PowerPC G4.
>
> > The problem first arose when I tried to run matplotlib - it couldn't
> > find tcl/tk because it was searching for 8.5, and I had 8.4. I found
> > and built tcl/tk 8.5, which led to a new error, reproduced below:
>
> > Traceback (most recent call last):
> >   File "brownian2.py", line 55, in <module>
> >     main()
> >   File "brownian2.py", line 41, in main
> >     root = Tk()
> >   File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
> > python2.6/lib-tk/Tkinter.py", line 1645, in __init__
> >     self._loadtk()
> >   File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
> > python2.6/lib-tk/Tkinter.py", line 1659, in _loadtk
> >     % (_tkinter.TK_VERSION, tk_version)
> > RuntimeError: tk.h version (8.4) doesn't match libtk.a version (8.5)
>
> > I'm a bit of a neophyte - can anyone tell me how to go about fixing
> > this? I've found some information by searching the list and Google,
> > but no helpful solutions.
>
> > Thanks,
> > Nat
>
> I haven't yet installed Python 2.6, but I've seen this error reported
> here and on the MacPython list.
>
> Based on what I'm seeing in the error message and in the setup.py file
> in the source code, it appears that Python 2.6 is looking in
> /System/Library/Frameworks for a Tcl/Tk installation rather than in
> /Library/Frameworks, which is second on the list of places to look.
> Tcl/Tk 8.4 comes standard with OS X in 10.4 and 10.5, and it's
> installed
> in /System/Library/Frameworks. The problem is that Python 2.6 seems to
> be linked against Tcl/Tk 8.5--is this correct?--and when it finds Tcl/
> tk
> 8.4, it returns an error.
>
> 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.
>
> Should a bug report be filed against this? If the Mac build of Python
> 2.6 consistently looks in /System/Library/Frameworks for Tcl/Tk, it
> won't run Tkinter applications. It makes the build pretty much useless
> for anyone needing it to run Tkinter apps, including Idle. I'd say
> it's
> a showstopper issue.
>
> --Kevin

Worked like a charm for getting Tkinter to work, thanks!

Seems strange that this is the way it's shipped; wonder if there's a
good reason?

Still having trouble with matplotlib, but I suspect that's unrelated,
and I'll work on it.

Again, thanks!



More information about the Python-list mailing list