Python IDLE errors instead of Call Tips

Dear All,

I’ve just installed OpenSuse 11.0 and I’m quite happy with it. I also installed Python 2.5.2 with IDLE 1.2.2. from the 11.0 repository. Unfortunately I ran into the following problem.

I open a terminal window and type idle at the prompt. The IDLE window opens and starts the Python shell up to its >>> prompt.

When typing :

>>> l = len(

to query the length of an object, instead of getting a Call Tip, I get on my terminal (where I ran idle) the message below:

Exception in Tkinter callback
Traceback (most recent call last):
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1403, in call
return self.func(args)
File “/usr/lib/python2.5/idlelib/MultiCall.py”, line 151, in handler
r = l
(event)
File “/usr/lib/python2.5/idlelib/CallTips.py”, line 55, in
try_open_calltip_event
self.open_calltip(False)
File “/usr/lib/python2.5/idlelib/CallTips.py”, line 79, in open_calltip
self.calltip.showtip(arg_text, sur_paren[0], sur_paren[1])
File “/usr/lib/python2.5/idlelib/CallTipWindow.py”, line 66, in showtip
self.position_window()
File “/usr/lib/python2.5/idlelib/CallTipWindow.py”, line 35, in
position_window
self.parencol))
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 2833, in bbox
self.tk.call((self._w, ‘bbox’) + args)) or None
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1030, in _getints
return tuple(map(getint, self.tk.splitlist(string)))
ValueError: invalid literal for int() with base 10: ‘(117,’

Actually, 117 is the x-coordinate (in pixels) where the cursor is positioned and where I’m about to see an little box with the appropriate call tip.

and when closing the parenthesis the following messages:

Exception in Tkinter callback
Traceback (most recent call last):
File “/usr/lib/python2.5/lib-tk/Tkinter.py”, line 1403, in call
return self.func(args)
File “/usr/lib/python2.5/idlelib/MultiCall.py”, line 151, in handler
r = l
(event)
File “/usr/lib/python2.5/idlelib/CallTips.py”, line 62, in
refresh_calltip_event
self.open_calltip(False)
File “/usr/lib/python2.5/idlelib/CallTips.py”, line 65, in open_calltip
self._remove_calltip_window()
File “/usr/lib/python2.5/idlelib/CallTips.py”, line 41, in
_remove_calltip_window
self.calltip.hidetip()
File “/usr/lib/python2.5/idlelib/CallTipWindow.py”, line 126, in hidetip
self.label.destroy()
AttributeError: ‘NoneType’ object has no attribute ‘destroy’*

Furhtermore there is one little X window that opens up, totally empty and useless (I suppose that this is the box appearing in place of the proper call tip box).

IDLE works but each time you expect a Tip to appear you receive instead a bunch of messages to the console.

I have tried installing Python/IDLE (version 2.5.4) from source, to see if this was an error in the TK Interface but I have never succeeded with the installation :frowning: (the problem is that it can’t find the tcl/tk libraries even when pointing to them - that’s another subject).

Thank you for your answers.
Regards, Rene**

Dear All,

Some further investigation on the Python + IDLE installation.

The Python+IDLE standard installation from Suse 11.0 repositories provides files in /usr/bin, /usr/lib and /usr/include. Essentially one finds files or directories under Python2.5 and links called python. Actually, when one types “python” at the shell prompt, one runs an executable called /usr/bin/python2.5 . So far so good.

I can build a new installation from the source files available at Python Programming Language – Official Website and it will end up with a similar set-up in /usr/bin, /usr/lib, /usr/include. I do however rename the previous directories as …/python2.5.2 so everything is safeguarded as the new installation installs the application under …/python2.5 . The new source is actually version 2.5.4 to replace the version 2.5.2 . As I said, the new version doesn’t work fully (no IDLE) because the build doesn’t find the tcl/tk libraries and headers (this is another problem) and thus I only have python 2.5.4 running.

There is however a major difference between the standard Suse 11.0 installation of Python 2.5.2 and the installation from source (./configure, make, make install) of Python 2.5.4. In the first case /usr/bin/python is an executable of about 6KB, while in the second case (built from source) /usr/bin/python is an executable of about 3MB. All the rest (/usr/lib/python and /usr/include/python) is almost identical in both case. It means to me that the Suse distribution did build Python with some different parameters.

Thank you in advance for your help.
Regards, Rene