[IPython-dev] Re: [SciPy-dev] Generic gui_thread + IPython: solution already exists!

Fernando Perez Fernando.Perez at colorado.edu
Mon Nov 15 12:40:56 CST 2004


Hi guys,

Prabhu Ramachandran wrote:
>>>>>>"JH" == John Hunter <jdhunter at ace.bsd.uchicago.edu> writes:
> 
> 
>>>>>>"Prabhu" == Prabhu Ramachandran <prabhu_r at users.sf.net> writes:
> 
>     JH> Hmm.  I'm not experiencing any problems with iptyhon 0.6.4 or
>     JH> cvs ipython, but with the patched shell I'm getting very
>     JH> frequent freezes
> [...]
> 
> Sorry about the problems.  This is indeed quite wierd.  I did not
> realize that the Tkinter updating could cause so many problems.

Sorry that I won't be able to help with real testing on this for a day or two, 
I'm a bit swamped.  But I'm really excited about this working well in the end, 
so at least you have my cheers :)

It would really be great to have tkinter functionality with any matplotlib 
backend, since for example mayavi is a key daily tool for many people (myself, 
for example).  This would force me to use matplotlib with the Tk backend, 
which is not the nicest.

But the freezes John is seeing are bad, and will cause end users no end of 
grief.  I just saw John's message about not having tkinter built with threads, 
perhaps we can somehow detect this and make the code robust enough to at least 
not activate the feature if threads are not in?  It's better to print a 
warning like "your Tk library has no thread support, so it can't coexist with 
WX/GTK" than to have strange lockups.

Anyway, many thanks for this great work.  I'll try to test it tomorrow 
further.  At least as a data point:

On my Fedora1 laptop:

[IPython]> ldd /usr/lib/python2.2/lib-dynload/_tkinter.so
         libtix8.1.8.3.so => /usr/lib/libtix8.1.8.3.so (0x00be5000)
         libtk8.3.so => /usr/lib/libtk8.3.so (0x0021f000)
         libtcl8.3.so => /usr/lib/libtcl8.3.so (0x00b32000)
         libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x00111000)
         libc.so.6 => /lib/tls/libc.so.6 (0x00446000)
         libitk3.2.so => /usr/lib/libitk3.2.so (0x0094b000)
         libitcl3.2.so => /usr/lib/libitcl3.2.so (0x00fdb000)
         libdl.so.2 => /lib/libdl.so.2 (0x00812000)
         libm.so.6 => /lib/tls/libm.so.6 (0x00a7d000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00ce4000)

On my Fedora2 desktop:

planck[~]> ldd /usr/lib/python2.3/lib-dynload/_tkinter.so
         libtix8.1.8.4.so => /usr/lib/libtix8.1.8.4.so (0x55025000)
         libtk8.4.so => /usr/lib/libtk8.4.so (0x5505f000)
         libtcl8.4.so => /usr/lib/libtcl8.4.so (0x5512c000)
         libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x551cd000)
         libpthread.so.0 => /lib/tls/libpthread.so.0 (0x55295000)
         libc.so.6 => /lib/tls/libc.so.6 (0x552a7000)
         libdl.so.2 => /lib/libdl.so.2 (0x553c3000)
         libm.so.6 => /lib/tls/libm.so.6 (0x553c8000)
         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x001bd000)

These are both using the stock python.  It appears that Fedora2 ships with 
pthreads, but NOT Fedora1.  So I imagine I'd have John's problems on my 
laptop, but not on my desktop.

Cheers,

f




More information about the IPython-dev mailing list