2013-11-18 3 views
0

Название не может быть столь же явно, как я хотел было бы, но вот то, что я пытаюсь достичь:Boost.Python: конвертеры недоступны из автономного питона сценария

Использование Boost.Python, я разоблачить набор класс/функции для Python в типичном макросе BOOST_PYTHON_MODULE(MyPythonModule) из C++, который после компиляции создает MyPythonModule.pyd. Теперь я могу вызвать скрипт python из C++ и поиграть с MyPythonModule без каких-либо проблем (например, создать объекты, вызвать методы и использовать мои зарегистрированные преобразователи). FYI: конвертер, о котором я говорю, - это numpy.ndarray для конвертера cv :: Mat.

Это прекрасно работает, но когда я пытаюсь написать автономный скрипт Python, который использует MyPythonModule, мои конвертеры недоступны. Я попытался разоблачить метод C++, который выполняет регистрацию конвертера на Python без везения.

Если мои разъяснения недостаточно ясны, не стесняйтесь задавать вопросы в комментариях.

Большое спасибо за вашу помощь/предложения.

ответ

0

Я нашел проблему ... Прототип моей функции C++ принимал cv::Mat& в качестве аргумента, и преобразователь был зарегистрирован для cv::Mat без ссылки.

Это было глупо.