В последний раз я проверял, C не имеет исключений. Конечно, вы не получите никаких исключений при вызове библиотеки Python.
Во-первых, поскольку вы используете C ++, вам может потребоваться включить библиотеку Python с объявлением extern.
extern "C" {
#include "python.h"
}
Далее, поскольку у вас нет исключений в вызовах C, вы должны проверять результат каждого вызова по мере продвижения. Это поможет вам лучше понять, где это происходит.
Так как вы не получаете segfault или что-то еще, я подозреваю, что вы получаете
if(!Py_IsInitialized())
return -1;
И выход. Вместо этого вы можете напечатать возвращаемое значение, чтобы знать, что происходит.
int is_init = Py_IsInitialized();
cout << "are we initialized? " << is_init;
if(!is_init)
return -1;
Если это не демонстрирует проблему, тогда добавьте дополнительные операторы cout в ваш код, чтобы отслеживать, где возникает проблема ... или, что еще лучше, используйте отладчик и пошагово просматривайте код во время его работы. Наверняка вы поймете, что происходит не так.