[PyKDE] Runtimeerror with pyKDE 3.8.0 on SuSE 9.0

Jim Bublitz jbublitz at nwinternet.com
Wed Mar 10 19:19:01 GMT 2004


On Wednesday March 10 2004 06:10, Jakobi Mikrobi wrote:
> I compiled pyKDE 3.8.0 on SuSE Linux 9.0 without any errors.
> After running "python importTest.py" the following text is
> displayed:
>
> Testing PyKDE module imports
>
> dcop
> kdecore
> Traceback (most recent call last):
>    File "importTest.py", line 7, in ?
>      exec ("import " + mod)
>    File "<string>", line 1, in ?
>    File "/usr/lib/python2.3/site-packages/kdecore.py", line
> 35, in ? import libkdecorec
> ImportError:
> /usr/lib/python2.3/site-packages/libkdecorecmodule.so:
> undefined symbol: _ZN19KAcceleratorManager6manageEP7QWidget
>
>
> Is there a way of fixing this problem?

In the kdelibs sources I have (from kde.org) beginning with KDE 
3.1.3, kaccelmanager.[h, cpp] appear in both kdecore and kdeui. 
sip won't accept the symbols in both modules (since kdeui 
imports kdecore), so I made the choice to include it only in 
kdecore. Apparently some (or all?) distributions include it only 
in libkdeui, so all of its symbols will be undefined in the 
PyKDE kdecore module.

The solution (which appears to work in all cases) is to delete 
kaccelmanager.sip from the kdecore-kde3*.sip files and add it to 
the kdeui-kde3*.sip files. The line to be deleted/added is:

%Include kaccelmanager.sip

in each case. You then need to rebuild and recompile PyKDE. It's 
only necessary to modify the kdecore-kde3*.sip and 
kdeui-kde3*.sup files that correspond to the version of KDE 
you're compiling against. The files are in the sip/ directory.

For SuSE 9.0 you probably want to modify kdeui-kde314.sip and 
kdecore-314.sip (I believe it shipped with KDE 3.1.4)

Jim




More information about the PyQt mailing list