Hi all, I try to embed a Python interpreter into my project using Py++/boost::python.
I have a problem wrapping different libraries for which i own the source and which I compile to DLL/*.so files . The libraries have dependencies on each other but do not necessarily have to be used together. An abstract example: The interpreter is in a library on which all other libraries depend and where they register themselves using init functions generated by py++/boost::python. Let's say I have a base library B. Additionally a library E extending library B. lib B: class __exported_to_python__ Base { void __exported_to_pytthon__ foo(){...} } lib E -> depends B: class __exported_to_python__ Extended : public B { void __exported_to_python__ boo(){...} } It makes sense to also use B alone, therefore I would like to build a Python wrapper for each library directly into the DLL. Now I register my init function generate by Py++/boost::python to the interpreter instance using `PyImport_AppendInittab`. The thing, that I cannot generate a proper inheritance relation between the class `Extended` and `Base` without telling Py++ to wrap both classes. But then I have wrapped `Base` twice. Once in B and once in E. And when boost::python tries to register some transfer functions based on the C++ type (RTTI) it fails, as it has already been registered (because init_B was called). If I simply delete the duplicated classes by hand from the wrapper of library `E` it works. But one has to ensure that first `B` is imported to Python (`import B`) and afterwards `E` (`import E`) otherwise boost::python does not have `Base` registered on which `Extended` depends. I hope I made myself clear enough now :-) So has anybody solved this problem before me? I did not find a source which would explain how to solve this issue with Py++ and boost::python. Thanks for all the fish! solong Martin -- View this message in context: http://old.nabble.com/Py%2B%2B-boost%3A%3Apython%3A-How-to-correctly-wrap-libraries-%28DLLs%29-with-dependencies-on-each-other.-tp27112969p27112969.html Sent from the Python - c++-sig mailing list archive at Nabble.com. _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig