views:

32

answers:

1

Considering the following archetypal Boost.Python module, which brings a class "D" from a separate C++ header file.

/* file: a/b.cpp */
BOOST_PYTHON_MODULE(c)
{
    class_<d>("D")
}

When I compile this to a shared library, I'm confused how I can expose it to Python.

  1. What should I call the library? a.so? liba.so? b.so? libb.so?
  2. Where does the library need to be? Can I leave it in a subdirectory?
+1  A: 

We prefer to call the library _c.so, put it in a module, and then add an __init__.py that basically does from _c import *. So you have:

  • package
    • _c.so
    • __init__.py
Ivo