Cetus Group
Cetus Logo
Информационные системы и программное обеспечение



Файлы проекта

Поддержка

 
Расширение и встраивание Python
Редакция 16.02.2006
А.Г. © Часть 2 - "Простой пример встраивания Python в C-программу"

Встраивание интерпретируемых языков программирования (в т.ч. Python) позволяет эффективно решать задачи, связанные с необходимостью интерпретировать (вычислять) выражения, введенные пользователем. При этом в распоряжении программиста на компилируемом языке оказывается инструменты:
-- Интерпретатор языка высокого уровня.
-- Синтаксис языка высокого уровня.
-- Модули (библиотеки) языка высокого уровня.
Использование этого подхода позволяет повысить гибкость решений рассчетных задач, предоставляет возможности создания простых табличных процессоров и т.д.

Ниже приведен простой пример встраивания Python в программу на языке C с возможностями интерпретации выражений, полученных из строки и файла.

/*** c2py.c ***/
#include <python/Python.h>

int main(int argc, char *argv[]){
    FILE *fp;
    
//инициализация интерпретатора
    Py_Initialize();
    
//выполнение кода из строки
    PyRun_SimpleString("print 2*(3+4)\n");
    
//выполнение кода из файла 'test.py'
    fp = fopen("test.py", "r");
    if(fp)
    {
	PyRun_SimpleFile(fp, "test.py");
	fclose(fp);
    }
    
//завершение интерпретатора и выход
    Py_Finalize();
    return 0;
}

Компиляция программы может быть выполнена следующим образом (функции библиотеки 'dl' обеспечивают загрузку разделяемых библиотек):

gcc c2py.c -lpython -lm -lpthread -ldl

Возможности получения результатов интерпретации Python-выражений в C-программу будут рассмотрены в следующих примерах.


Copyright©2005, Cetus Group : All rights reserved.