C ++, встраивание Python: при импорте библиотеки torch / sklearn во встроенный код Python выдается сигнал DEBUG: catch для прерывания ошибки - PullRequest
0 голосов
/ 21 июня 2019

Я написал программу на C ++, которая использует вложения python для вызова модуля python, который использует библиотеки numpy и pytorch.При использовании исключительно библиотеки NumPy я могу без проблем вызвать и вернуться из модуля.Однако, когда я добавляю команду «import torch» в мой модуль, моя программа выдает следующую ошибку:

DEBUG: пойман сигнал на прерывание (дочерний процесс завершен).

Проблема также возникает, когда я импортирую модули torch / sklearn с помощью функции PyRun_SimpleString ().

Часть моей программы, где я вызываю соответствующий импорт:

Py_Initialize();
PyRun_SimpleString("import numpy");
cout << "numpy ok" << endl;
PyRun_SimpleString("import torch");
cout << "torch ok" << endl;

Когда я выполняю кодвыше, я получаю следующий вывод:

numpy ok
DEBUG: caught signal to interrupt (Child exited).

Я компилирую и связываю свою программу, используя выходные данные python3-config --cflags и python3-config --ldflags`.У меня также установлен pytorch для моего python3.6, как видно из кода ниже:

PyRun_SimpleString("import importlib");
PyRun_SimpleString("flag = importlib.util.find_spec('torch')");
PyRun_SimpleString("print(flag is not None)");

Этот код печатает True, показывая, что факел действительно установлен, но по какой-то причине не может быть загружен.Наконец, то же самое происходит при попытке импортировать библиотеку sklearn.Спасибо.

...