[Pythonmac-SIG] Why Do I Explicitly Need MacPython

Bob Ippolito bob at redivi.com
Tue Sep 26 22:51:08 CEST 2006


On 9/26/06, Dave Reed <davelist at mac.com> wrote:
>
> On Sep 25, 2006, at 6:31 PM, Russell E Owen wrote:
>
> > At 5:26 PM -0400 2006-09-25, davelist at mac.com wrote:
> >> I'm very interested in this and would be happy to help with
> >> testing. I teach Python at the college level using John Zelle's
> >> Python book (it uses Tk for simple GUI programs). Most of the
> >> programs run fine, but some of the more complex ones crash
> >> intermittently within Tk. The same program seems to run fine on
> >> Windows using 2.4.3 although it does crash intermittently on
> >> CentOS 4.3 within Tk.
> >>
> >> In the meantime, are you saying the simplest solution for my
> >> students with Macs is to use ActiveState (some have G4 laptops and
> >> some have Intel based laptops)?
> >>
> >> I have a G5 running 10.3.9 at work (IT isn't planning to upgrade
> >> yet) and a G5 running 10.4.x at home so I'll be happy to test on
> >> both of those.
> >
> > If it's bugs in Tcl/Tk that are causing the crashes then by all
> > means I would try:
> > - Install ActiveState Tcl/Tk 8.4.11 or 8.4.13.
> > - Install MacPython (it's better than the one from Apple, plus
> > you're about to modify python, and you shouldn't modify anything
> > in /System)
> > - Modify _tkinter.so according to Bob Ippolito's recipe. At the
> > command line:
> >
> > install_name_tool \
> >      -change /System/Library/Frameworks/Tcl.framework/Versions/8.4/
> > Tcl \
> >              /Library/Frameworks/Tcl.framework/Versions/8.4/Tcl \
> >      -change /System/Library/Frameworks/Tk.framework/Versions/8.4/Tk \
> >              /Library/Frameworks/Tk.framework/Versions/8.4/Tk \
> > /Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/lib-
> > dynload/_tkinter.so
> >
> > The above command should be six lines long; you'll probably have to
> > unwrap at least the last line.
> >
> > An alternative is to install ActiveState Python instead of
> > MacPython, because it works with ActiveState Tcl/Tk "out of the
> > box". But it doesn't include readline. You can add readline, but I
> > think it's easier to fix _tkinter.so.
> >
> > -- Russell
>
>
> I installed ActiveState Tcl and MacPython 2.4.3 on the 10.3.9
> machine. The /Systems/Library/Frameworks/Tk.framework directory does
> not exist (the Tcl.Framework directory does so I tried the above
> install_name_tool line with just the Tcl lines (and the final line
> with ._tkinter.so).
>
> I can't get some Tk programs to run now. Using the graphics.py file at:
> http://mcsp.wartburg.edu/zelle/python/graphics.py
>
> I get:
>
>
> $ /usr/local/bin/python
> Python 2.4.3 (#1, Apr  7 2006, 10:54:33)
> [GCC 4.0.1 (Apple Computer, Inc. build 5250)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
>  >>> import graphics
>  >>> Tk_MacOSXSetupTkNotifier: first [load] of TkAqua has to occur in
> the main thread!
> Abort trap
>
> Does anyone still have a 10.3.9 system to try importing that
> graphics.py file and see if it works for them? Any thoughts on making
> it work? I have an old python 2.3.5 from fink that does import
> graphics.py ok and works fine for many simple programs but crashes on
> more complicated programs.
>
> I have not yet tried it on the 10.4.7 G5 yet.

>From that warning, it appears that the way graphics.py uses threads is
not compatible with TkAqua. It either needs to be refactored to do its
graphics stuff in the main thread, or you need to use an X11 Tk.

-bob


More information about the Pythonmac-SIG mailing list