Something on my back

dear, all-knowing and all-powerful lazyweb;

what’s the reason why python segfaults1 with this error message:

TypeError: Cannot create a consistent method resolution
order (MRO) for bases Container, Scriptable

when I’m trying to instantiate a python class inheriting from a C class that implements those two interfaces? just for the record:

  • the interfaces have no colliding methods
  • the python class is registering a GObject type
  • the python class has no colliding method with either interfaces

I can point at the code or, if python-gobject/gtk maintainers are at GUADEC, I can show them right away. you can easily find me: I’m the one swearing at python.

  1. yes, python segfaults — and it does inside pygobject []
This entry was posted in lazyweb. Bookmark the permalink.

5 Responses to Something on my back

  1. Johan says:

    This usually happens if you have a define-object where you should have a define-interface in one of the .defs files. The current h2defs scanner cannot properly recognize interfaces.

  2. lqd says:

    hehehe we’re having the exact same problem right now, embedding pyclutter in pygtk ….
    Somehow, adding huge sleep calls (like 45s), at random places, sometimes “solves” the problem (that is if you don’t mind waiting 5 minutes for the app to boot :)

  3. ebassi says:

    @johan: nope – both interfaces are correctly defined.

Comments are closed.