Как python загружает библиотеки Boost.Python? - PullRequest
1 голос
/ 31 августа 2010

Учитывая следующий архетипический модуль Boost.Python, который выводит класс "D" из отдельного заголовочного файла C ++.

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

Когда я компилирую это в разделяемую библиотеку, я запутался, как я могу представить ее на Python.

  1. Как мне назвать библиотеку? a.so? liba.so? b.so? libb.so?
  2. Где должна быть библиотека? Могу ли я оставить его в подкаталоге?

1 Ответ

3 голосов
/ 02 сентября 2010

Мы предпочитаем вызывать библиотеку _c.so, помещать ее в модуль, а затем добавить __init__.py, который в основном делает from _c import *. Итак, у вас есть:

  • package
    • _c.so
    • __init__.py
...