Встраивание Python в C / C ++ из anaconda PyThreadState_Get: нет текущего потока

Попытка встроить интерпретатор Python в приложение C ++. Думал, что это будет прямо вперед, но у меня возникли проблемы со связью. Единственное необычное, что я пытаюсь использовать конкретный пакет Anaconda. Простой код C ++:

# include <Python.h>

int main()
{
printf("before initialize");
Py_Initialize();
printf("after initialize");
PyRun_SimpleString("print('Hello from Python')");
Py_Finalize();
return 0;
}

для компиляции я использую:

gcc pythonTest.cc  -I/path/to/anaconda/include/python3.6m -L/path/to/anaconda/lib/python3.6/config-3.6m-x86_64-linux-gnu -lm -lpthread -ldl -lutil -lpython3.6m -o pytest

Он компилируется, но когда я запускаю простую программу, я получаю:

Fatal Python error: PyThreadState_Get: no current thread

before initializeAborted

Я проверил путь, который видит программа, и он включает в себя путь к тому же исполняемому файлу Python, который я указал с помощью include и libs. Тем не менее, некоторые поиски, кажется, предполагают, что то, что вызывается в версии Python, как-то отличается от того, с чем было связано. Я в растерянности относительно того, как это понять.

1

Решение

Попробуйте скомпилировать, используя:

gcc pythonTest.cc -I/$HOME/anaconda3/include/python3.6m -lpython3.6m
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector