[python][C++] импорт модуля в модуле
От: Кодт Россия  
Дата: 02.06.21 15:01
Оценка:
У меня есть некий модуль, написанный на boost::python.
Он использует сторонний модуль, написанный на голом С++ с сишным питоньим апи.

namespace py = boost::python;

py::object ThirdPartyModule() {
  static py::object module = py::import("third_party_module");
  return module;
}

py::object ThirdPartyFun() {
  static py::object fun = ThirdPartyModule().attr("fun");
  return fun;
}

void my_public_function() {
  ThirdPartyFun()();
}



BOOST_PYTHON_MODULE(my_module) {
  py::def("my_public_function", my_public_function);
}


import my_module
my_module.my_public_function()
my_module.my_public_function()


Пока это всё было под питон 2.7, — всё работало в лучшем виде.
Перешёл на 3.6 — стало крешиться в деструкторе статического объекта module.

Вопрос: как правильно импортировать сторонний модуль?
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.