Andres Jaan Tack
Andres Jaan Tack

Reputation: 23014

How does python load Boost.Python libraries?

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?

Upvotes: 1

Views: 272

Answers (1)

Ivo
Ivo

Reputation: 3569

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

Upvotes: 3

Related Questions