Если вы пишете код на C и Python, рано или поздно возникнет задача: как вызывать Python из C? Особенно если вы работаете с AI-исследованиями, Tensorflow, или хотите встроить скрипты в уже существующий C-проект.
Вот краткое руководство:
python3-config --includes
В
Cmain.c
:#include <Python.h>
gcc Cmain.c -I/usr/include/python3.8 -lpython3.8 -o Cmain.o
setenv("PYTHONPATH", "./", 1);
Py_Initialize();
// ...
Py_Finalize();
PyObject *module = PyImport_ImportModule("PythonFunctions");
PyObject *func = PyObject_GetAttrString(module, "PrintList");
PyObject_CallObject(func, args);
Создаём через
PyList_New
, PyLong_FromLong
, PyTuple_Pack
.Не забываем про
Py_XDECREF(...)
Библиотека питониста #буст