Detlev Offenbach wrote:
On Donnerstag, 10. April 2008, Simon Edwards wrote:
Hello all,

Some people here might have crossed paths with the "menu text missing in
PyKDE apps with Oxygen" bug. Basically menu labels are not rendered when
a PyKDE4 application is used with the Oxygen widget style. After quite a
lot of hair-pulling work over the last few days I've figured out what
the problem is.

First, a solution. Put the following lines in your PyKDE4/__init__.py
file in your Python installation's site-packages directory. (typically
/lib/python2.5/site-packages/PyKDE4/__init__.py).

   import sys, dl
   sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)

Python seems to be broken on openSUSE 10.3 64-bit. It doesn't contain the dl.so library. Any help is appreciated.

Looking at the dl docs I see:

"""
Note: This module will not work unless sizeof(int) == sizeof(long) == sizeof(char *) If this is not the case, SystemError will be raised on import.
"""

That explains why it is not there for 64bit.

Docs for sys.setdlopenflags():

"""
setdlopenflags(  n)
Set the flags used by the interpreter for dlopen() calls, such as when the interpreter loads extension modules. Among other things, this will enable a lazy resolving of symbols when importing a module, if called as sys.setdlopenflags(0). To share symbols across extension modules, call as sys.setdlopenflags(dl.RTLD_NOW | dl.RTLD_GLOBAL). Symbolic names for the flag modules can be either found in the dl module, or in the DLFCN module. If DLFCN is not available, it can be generated from /usr/include/dlfcn.h using the h2py script. Availability: Unix. New in version 2.2.
"""

Try this:

    import sys,DLFCN
    sys.setdlopenflags(DLFCN.RTLD_NOW|DLFCN.RTLD_GLOBAL)

cheers,

--
Simon Edwards             | KDE-NL, Guidance tools, Guarddog Firewall
[EMAIL PROTECTED]       | http://www.simonzone.com/software/
Nijmegen, The Netherlands | "ZooTV? You made the right choice."
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to