[C++-sig] Indexing suite v2 multiple module problem
Roman Yakovenko
roman.yakovenko at gmail.com
Wed Jul 25 10:44:08 CEST 2012
On Wed, Jul 25, 2012 at 11:03 AM, John Reid <j.reid at mail.cryst.bbk.ac.uk> wrote:
> Hi,
>
> I'm using a version of the indexing suite I believe I copied from
> Roman's codebase some time ago. I've recently refactored my project into
> multiple modules and now I'm have some runtime errors when iterating
> over sequences in python. At runtime I get the cryptic message:
>
> RuntimeError: get
>
> It is proving a little difficult to track down as it only happens on my
> server not on my development machine although it is reproducible every
> time. Not all std::vectors that are exposed trigger the error. If I
> change the order that my C++ modules are imported then the std::vector
> that triggers the error changes.
>
> I'm building a debug python on my server to try to investigate further
> but meanwhile I wonder if anyone had any suggestions or had seen this
> sort of thing before?
>
> Also where is the latest version of the indexing suite v2 code that I
> could use?
Do you use dlopen?
import sys
sys.setdlopenflags(RTLD_NOW | RTLD_GLOBAL)
In multi-module environment you have to share boost python registry.
I would start with this. You can google for "boost python dlopen" and
find a lot of information about the subject.
If I remember right, Py++ contains (generates) some code that queries
the registry and registers the class conditionally.
HTH,
Roman
More information about the Cplusplus-sig
mailing list