Python 2.4 and Tkinter

Jeffrey Barish jeffbarish at starband.net
Fri Dec 3 00:02:27 EST 2004


Jean Brouwers wrote:

> 
> It is hard to tell what is wrong, exactly.  Two suggestions:
> 
> If this is a 32-bit build, why is there a  "-L/usr/X11R6/lib64" and
> *before*  the regular "-L/usr/X11R6/lib"?  Try to rerun just that line
> "gcc -pthread .... _tkinter.so" but without the "-L/usr/X11R6/lib64"
> option.
> 
> If that still fails, try a fresh reconfigure and rebuild from scratch,
> now that the Tcl/Tk libs are there.  Start with "./configure ...." per
> the instructions in the README file, run "make clean" etc..
> 
> /Jean Brouwers
> 
> 
> 
> In article <mailman.7043.1102028470.5135.python-list at python.org>,
> Jeffrey Barish <jeffbarish at starband.net> wrote:
> 
>> Jean Brouwers wrote:
>> 
>> > 
>> > Here is how we understand this (which may be incomplete and/or
>> > incorrect).
>> > 
>> > The _tkinter module is a shared library _tkinter.o and that is
>> > built
>> > from C source file _tkinter.c.  That C file and a few other tk
>> > related C files are included in the Python distribution.
>> > 
>> > But the Tcl/Tk libraries to build the _tkinter module are coming
>> > from
>> > /usr/local/lib in our case.  And those happens to be tcl83 and tk83
>> > in our case.
>> > 
>> > If the Tcl/Tk libraries (and include files) are missing, you will
>> > have
>> > to get and install those.  But they are not part of the Python
>> > distribution, as far as we know.
>> > 
>> > /Jean Brouwers
>> > 
>> > 
>> > 
>> > In article <mailman.6999.1101954197.5135.python-list at python.org>,
>> > Jeffrey Barish <jeffbarish at starband.net> wrote:
>> > 
>> >> Jean Brouwers wrote:
>> >> 
>> >> > 
>> >> > FWIW, we just installed Python 2.4 (on RH Linx 8), rebuilt it
>> >> > from
>> >> > scratch and everything is fine.  Tkinter is there, _tkinter as
>> >> > well and idle comes up as expected.
>> >> > 
>> >> > /Jean Brouwers
>> >> > 
>> >> > 
>> >> > 
>> >> > In article
>> >> > <mailman.6996.1101939598.5135.python-list at python.org>, Jeffrey
>> >> > Barish <jeffbarish at starband.net> wrote:
>> >> > 
>> >> >> http://www.python.org/moin/TkInter
>> >> 
>> >> Here's what I get when I import Tkinter at a python prompt:
>> >> 
>> >> jeffbarish at duo:~$ python
>> >> Python 2.4 (#1, Nov 30 2004, 08:58:13)
>> >> [GCC 3.2.3 20030316 (Debian prerelease)] on linux2
>> >> Type "help", "copyright", "credits" or "license" for more
>> >> information.
>> >> >>> import Tkinter
>> >> Traceback (most recent call last):
>> >>   File "<stdin>", line 1, in ?
>> >>   File "/usr/local/lib/python2.4/lib-tk/Tkinter.py", line 38, in ?
>> >>     import _tkinter # If this fails your Python may not be
>> >>     configured
>> >> for Tk
>> >> ImportError: No module named _tkinter
>> >> 
>> >> I tried make clean and make.  Same result.  Ah, now I see that the
>> >> output from make includes:
>> >> 
>> >> INFO: Can't locate Tcl/Tk libs and/or headers
>> >> 
>> >> Aren't the libs and headers included in Python-2.4.tgz?
>> 
>> OK, I downloaded tcl8.4.8 and tk8.4.8.  They are now installed.  Back
>> to
>> python2.4 make.  It now bombs at:
>> 
>> gcc -pthread -shared build/temp.linux-i686-2.4/_tkinter.o
>> build/temp.linux-i686-2.4/tkappinit.o -L/usr/X11R6/lib64
>> -L/usr/X11R6/lib -L/usr/local/lib -ltk8.4 -ltcl8.4 -lX11 -o
>> build/lib.linux-i686-2.4/_tkinter.so
>> *** WARNING: renaming "_tkinter" since importing it failed:
>> libtk8.4.so: cannot open shared object file: No such file or
>> directory running build_scripts
>> 
>> Here's what I don't get:
>> 
>> root at duo:/tmp/Python-2.4# ls -l /usr/local/lib/libtk8.4.so
>> -rwxr-xr-x    1 root     staff      893866 2004-12-02
>> 15:28 /usr/local/lib/libtk8.4.so
>> 
>> The library is there but gcc claims that it isn't.  Any suggestions?

It turns out that the problem is in the step after the gcc.  I have now
tracked it into setup.py.  There is a call to imp.load_dynamic() that
fails.  I haven't been able to figure out why yet, in large part
because I am not familiar with module imp (and imp.load_dynamic isn't
even documented).
-- 
Jeffrey Barish




More information about the Python-list mailing list