[PyKDE] PyKDE-3.11rc1 release

Jim Bublitz jbublitz at nwinternet.com
Mon May 10 18:11:00 BST 2004


On Sunday May 9 2004 23:45, Simon Edwards wrote:
> On Sunday 09 May 2004 17:12, Simon Edwards wrote:
> > [sbe at f53113 /home/sbe/devel/guidance/displayconfig]$ python
> > Python 2.3.3 (#2, Feb 17 2004, 11:45:40)
> > [GCC 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)] on linux2
> > Type "help", "copyright", "credits" or "license" for more
> > information.
> >
> > >>> import kdeui
> >
> > Traceback (most recent call last):
> >   File "<stdin>", line 1, in ?
> >   File "/usr/lib/python2.3/site-packages/kdeui.py", line 67,
> > in ? import libkdeuic
> > ImportError: libkdefxcmodule.so: cannot open shared object
> > file: No such
>
> file
>
> > or directory

> objdump and ldd tell me that libkdeuicmodule.so is linked to
> libkdefxcmodule.so. But my runtime linker isn't configured to
> search in /usr/lib/python2.3/site-packages/ so it can't find
> libkdefxcmodule.so.

> Does Mdk 9.2 really have /usr/lib/python2.3/site-packages/ in
> ld.config?

ld.so.conf? No.

> Couple of solutions:

> 1) modify ld.config. (=> makes packaging tricker)

Do you mean modify ld.so.conf or run ldconfig? I don't think the 
first is good practice - too much potential damage to someone's 
setup. PyKDE-3.8 used to do the latter, but that was for 
libpythonize and panel applet stuff (which aren't in PyKDE any 
more).

> 2) modify the kde*.py files to import the library dependancies
> first. (make kdeui.py import kdefx, and let python load
> libkdefxcmodule.so directly).

That's possible for sip 3.10.1, but there are no *.py files in 
sip 4.0.

> 3) modify the kde*.py to twiddle the LD_LIBRARY_PATH
> environment var with the extra search path. (=> is
> LD_LIBRARY_PATH linux specific?)

Most distros don't set this anymore. Modifying the environment 
from a script is somewhere between tricky and impossible in my 
experience.

> If Mandrake 10 is the odd one out here and all of the other
> distros have /usr/lib/python2.3/site-packages/ in their
> ld.config, then 1) is probably the winner.

It's Python that's failing to load libkdefxcmodule.so though, not 
the Linux loader (directly). I would think PYTHON_PATH or 
sys.path should cover locating this lib but I may be wrong on 
that (that's how /site-packages is "known" in the first place. 
It might be the difference between importing a script and 
loading a .so file.

If modifying the k*.py files in /site-packages will solve the 
problem, I can do that. I'd prefer to limit it to those which 
are absolutely necessary if you can provide me with that info 
(when I've had similar problems in the past, it's usually not 
required every module to be loaded to solve the problem). I 
don't recall that running ldconfig would fix this when I've had 
the problem in the past, but I never tried modifying ld.so.conf 
for this.

Jim




More information about the PyQt mailing list