Мониторинг обменных курсов валют
18c0693f

Пример встраивания интерпретатора в программу на C


Интерпретатор Python может быть встроен в программу на C с использованием C API. Это лучше всего демонстрирует уже работающий пример:

/* File : demo.c */ /* Пример встраивания интерпретатора Python в другую программу */ #include "Python.h"

main(int argc, char **argv) { /* Передает argv[0] интерпретатору Python */ Py_SetProgramName(argv[0]);

/* Инициализация интерпретатора */ Py_Initialize();

/* ... */

/* Выполнение операторов Python (как бы модуль __main__) */ PyRun_SimpleString("import time\n"); PyRun_SimpleString("print time.localtime(time.time())\n");

/* ... */

/* Завершение работы интерпретатора */ Py_Finalize(); }

Компиляция этого примера с помощью компилятора gcc может быть выполнена, например, так:

ver="2.3" gcc -fpic demo.c -DHAVE_CONFIG_H -lm -lpython${ver} \ -lpthread -lutil -ldl \ -I/usr/local/include/python${ver} \ -L/usr/local/lib/python${ver}/config \ -Wl,-E \ -o demo

Здесь следует отметить следующие моменты:

Здесь же следует сделать еще одно замечание: программа, встраивающая Python, не должна много раз выполнять Py_Initialize() и Py_Finalize(), так как это может приводить к утечке памяти. Сам же интерпретатор Python очень стабилен и в большинстве случаев не дает утечек памяти.






Самый выгодный курс обмена валюты