Импорт с надстройкой Python

1

Я импортирую как это:

numpy_module = bp::import("numpy");

или вот так:

numpy_module = bp::scope().attr("numpy");

Я получаю

terminate called after throwing an instance of 'boost::python::error_already_set'

У меня не было проблемы с Python 2.7, но после обновления до Python 3.1 это странное исключение появилось.

Теги:
python-3.x
boost-python

1 ответ

1
Лучший ответ

Получил: мне нужно было скомпилировать Boost для Python31.

  • 1
    Вы должны принять свой собственный ответ здесь тогда. Но слово для следующего раза: вы должны вызвать PyErr_Print() когда вы поймаете error_already_set и он покажет вам реальное сообщение об ошибке от Python.
  • 1
    Здорово. И если вы хотите распространить исключение как std :: exception, вы можете сделать это, используя PyErr_Fetch (), чтобы получить значение (строку) исключения, а затем повторно выдать его как std :: исключение в C ++. Почему Boost Python, похоже, не идет с помощником для этого, я не знаю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню