How to get a Mac OS X version of Tcl/Tk rather than X11 version.

I have an installation of Python 2.6.4 on my MacBook Pro (OS X 10.6) that by
default uses X11 windows and dialogs rather than the Mac version of those GUI
items. In my googling and exchanges on other support groups I've come down to
the problem may be with the Tcl/Tk installation using the "generic" X11 GUI
rather than the Mac version. Does anyone know how I can change that in the Tk
part of the python framework?

I think this problem came up in the iPython email list, but I didn't get enough
info from the messages there.

More Info: The python framework is part of the SAGE package which I installed
from source. I did this on my Mac Pro (system 10.4) and it works well with Mac
windows for matplotlib and Mac open/save dialogs for Tk calls. But on my
MacBook Pro I get X11 windows and dialogs. I want the Mac versions.

Even more info:

If you're interested, here's the original message I put up on the SAGE support
group and was told it's a problem with the type of Tcl/Tk installed.

-- Lou Pecora

···

-----------------------------------------------------------------------------

I have an installation of SAGE (from source) on my Mac laptop in which using the
tcl/tk library to plot (using TKAgg backend) or call tk file open/save dialogs
calls the X11 versions and not the native Mac versions of dialogs and windows.
I want to get the Mac versions.

I posted about this on this list recently and now after a response here and much
googling I have the sense that the problem is that I have a SAGE package with an
X11 version of the tk library rather than the Mac one. I compiled SAGE from
source on my Mac laptop. That went perfectly. I don't know how I got the X11
version since I also compiled SAGE from source on my Mac desktop where the
plotting and file dialogs are the correct Mac versions, not X11. The only
difference is that the laptop is Mac OS X 10.6 and the desktop is 10.4. If that
matters, I don't know.

Does anyone know how to get the Mac version installed in the SAGE source-compile
installation? I have not found an answer to this elsewhere. I'm hoping someone
here knows how this is done with the source installation.

Thanks for any help or pointers.

-- Lou Pecora

2011/1/24 Lou Pecora <lou_boog2000@...9...>:

I have an installation of Python 2.6.4 on my MacBook Pro (OS X 10.6) that by
default uses X11 windows and dialogs rather than the Mac version of those GUI
items. In my googling and exchanges on other support groups I've come down to
the problem may be with the Tcl/Tk installation using the "generic" X11 GUI
rather than the Mac version. Does anyone know how I can change that in the Tk
part of the python framework?

I think this problem came up in the iPython email list, but I didn't get enough
info from the messages there.

More Info: The python framework is part of the SAGE package which I installed
from source. I did this on my Mac Pro (system 10.4) and it works well with Mac
windows for matplotlib and Mac open/save dialogs for Tk calls. But on my
MacBook Pro I get X11 windows and dialogs. I want the Mac versions.

Even more info:

If you're interested, here's the original message I put up on the SAGE support
group and was told it's a problem with the type of Tcl/Tk installed.

-- Lou Pecora

-----------------------------------------------------------------------------

I have an installation of SAGE (from source) on my Mac laptop in which using the
tcl/tk library to plot (using TKAgg backend) or call tk file open/save dialogs
calls the X11 versions and not the native Mac versions of dialogs and windows.
I want to get the Mac versions.

I posted about this on this list recently and now after a response here and much
googling I have the sense that the problem is that I have a SAGE package with an
X11 version of the tk library rather than the Mac one. I compiled SAGE from
source on my Mac laptop. That went perfectly. I don't know how I got the X11
version since I also compiled SAGE from source on my Mac desktop where the
plotting and file dialogs are the correct Mac versions, not X11. The only
difference is that the laptop is Mac OS X 10.6 and the desktop is 10.4. If that
matters, I don't know.

Does anyone know how to get the Mac version installed in the SAGE source-compile
installation? I have not found an answer to this elsewhere. I'm hoping someone
here knows how this is done with the source installation.

I have a self-compiled Python 2.6.5 on Mac OS X 10.6.6, with
self-compiled matplotlib.

It shouldn't matter if mpl is self-compiled or not, since the TkAgg
backend just uses the Python Tkinter module. mpl uses some blitter
extension, but this shouldn't matter here too.

I don't have Sage installed, and I know little about Sage.

My Tkinter widgets, irrespective of mpl or not, have the Aqua look-and-feel.

I know that, using the binary distribution package of Python 2.x I
used before, I got *not real* Aqua look-and-feel, but it wasn't either
X11 iirc (i.e. no X11 spawned; assumed that spawning X11 implies that
is shows up in the Dock). With that binary, text boxes did not have
Aqua boundaries, but I do not remember precisely how buttons looked
like. Save dialogs were also not as you might want them to have; with
the self-compiled Python, they are like in any other Mac app. I
remeber vaguely that the Python binary Mac OS X packages are compiled
agains an older Tcl/Tk, for support of Mac OS X 10.4. Anyway, all
this is long ago.

I tried this on my system:
n0877:lib-dynload Friedrich$ pwd
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
n0877:lib-dynload Friedrich$ otool -L _tkinter.so
_tkinter.so:
  /System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl
(compatibility version 8.5.0, current version 8.5.7)
  /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk
(compatibility version 8.5.0, current version 8.5.7)
  /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 438.0.0)
  /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.0)

It tells you what Tcl/Tk frameworks the Tkinter binary module is linked against.

Be warned that compiling mpl on Mac OS X 10.6 is a bit cumbersome due
to compiler issues.

Friedrich

than X11 version.

2011/1/24 Lou Pecora <lou_boog2000@...9...>:

I have an installation of Python 2.6.4 on my MacBook Pro (OS X 10.6) that by
default uses X11 windows and dialogs rather than the Mac version of those GUI
items. In my googling and exchanges on other support groups I've come down to
the problem may be with the Tcl/Tk installation using the "generic" X11 GUI
rather than the Mac version. Does anyone know how I can change that in the Tk
part of the python framework?

I think this problem came up in the iPython email list, but I didn't get

enough

info from the messages there.

More Info: The python framework is part of the SAGE package which I installed
from source. I did this on my Mac Pro (system 10.4) and it works well with

Mac

windows for matplotlib and Mac open/save dialogs for Tk calls. But on my
MacBook Pro I get X11 windows and dialogs. I want the Mac versions.

Even more info:

If you're interested, here's the original message I put up on the SAGE support
group and was told it's a problem with the type of Tcl/Tk installed.

-- Lou Pecora

[cut]

I have a self-compiled Python 2.6.5 on Mac OS X 10.6.6, with
self-compiled matplotlib.

It shouldn't matter if mpl is self-compiled or not, since the TkAgg
backend just uses the Python Tkinter module. mpl uses some blitter
extension, but this shouldn't matter here too.

I don't have Sage installed, and I know little about Sage.

My Tkinter widgets, irrespective of mpl or not, have the Aqua look-and-feel.

I know that, using the binary distribution package of Python 2.x I
used before, I got *not real* Aqua look-and-feel, but it wasn't either
X11 iirc (i.e. no X11 spawned; assumed that spawning X11 implies that
is shows up in the Dock). With that binary, text boxes did not have
Aqua boundaries, but I do not remember precisely how buttons looked
like. Save dialogs were also not as you might want them to have; with
the self-compiled Python, they are like in any other Mac app. I
remeber vaguely that the Python binary Mac OS X packages are compiled
agains an older Tcl/Tk, for support of Mac OS X 10.4. Anyway, all
this is long ago.

I tried this on my system:
n0877:lib-dynload Friedrich$ pwd
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload
n0877:lib-dynload Friedrich$ otool -L _tkinter.so
_tkinter.so:
    /System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl
(compatibility version 8.5.0, current version 8.5.7)
    /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk
(compatibility version 8.5.0, current version 8.5.7)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 438.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 125.2.0)

It tells you what Tcl/Tk frameworks the Tkinter binary module is linked against.

Be warned that compiling mpl on Mac OS X 10.6 is a bit cumbersome due
to compiler issues.

Friedrich

···

----- Original Message ----
From: Friedrich Romstedt <friedrichromstedt@...287...>
To: Lou Pecora <lou_boog2000@...9...>
Cc: matplotlib-users@lists.sourceforge.net
Sent: Tue, January 25, 2011 7:40:23 AM
Subject: Re: [Matplotlib-users] How to get a Mac OS X version of Tcl/Tk rather

------------------------------------------------------

Hi, Friedrich,

You have given me the key to the solution to my problem. Thank you. The
problem was that I had separate Tcl and Tk Frameworks installed and SAGE was
using those. The solution is to remove those and re-build SAGE which then is
smart enough to use the Apple supplied Tcl and Tk Frameworks. That gives what
looks like the Aqua interface. However, it does not add in the Default Folder
add-on that I have for open and save dialogs. But I can live without that. The
X11 interface is gone. Below are instructions for others who might have this
problem. Thanks, again.

I ran your otool command on my Apple python installation down in
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload

and got this output:

_tkinter.so:
     /System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl (compatibility
version 8.5.0, current version 8.5.7)
     /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk (compatibility
version 8.5.0, current version 8.5.7)
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.0)

So my Apple python is under /System not /Library like yours.

When I go to the SAGE folder and run otool on its lib-dynload folder I got

_tkinter.so:
     /Library/Frameworks/Tcl.framework/Versions/8.5/Tcl (compatibility version
8.5.0, current version 8.5.9)
     /Library/Frameworks/Tk.framework/Versions/8.5/Tk (compatibility version
8.5.0, current version 8.5.9)
     /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version
125.2.1)

Note, these frameworks are down in the /Library folder which shows SAGE is
building the Tk library on the Tcl and Tk frameworks I had installed earlier,
not on the Apple versions down in /System folder.

These solution is to remove the /Library Tcl and Tk frameworks and re-install
SAGE.

The only problem for some people might be that they might have built other
things bases on the non-Apple Tcl and Tk frameworks.

-- Lou Pecora