Встраивание кода python + numpy в функцию обратного вызова C ++ dll

Я новичок в встраивании python. Я пытаюсь встроить код python + numpy в функцию обратного вызова C ++ (внутри a dll)

проблема, с которой я столкнулся, заключается в следующем. если у меня:

Py_Initialize();
// some python glue
// python invocation
Py_Finalize();

все работает нормально.

но если у меня есть:

Py_Initialize();
_import_array(); //to initialize numpy C-API
// some python glue + numpy array object creation
// python invocation via PyObject_CallObject()
Py_Finalize();

происходит сбой во второй раз, когда он достигает _import_array (); (это означает, что он работает для первого обратного вызова)

, если вместо этого я выполняю инициализацию python и numpy только один раз и финализацию в деструкторе (то есть не каждый раз при инициализации / завершении), все вылетает при выходе из обратного вызова ..

Проблема здесь, я полагаю, неуместна, но я не знаю, как ее решить

6
задан Johan Råde 15 April 2012 в 11:54
поделиться