1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C语言中执行python代码或源程序文件(高级嵌入方式)

C语言中执行python代码或源程序文件(高级嵌入方式)

时间:2022-05-24 04:55:06

相关推荐

C语言中执行python代码或源程序文件(高级嵌入方式)

环境:Fedora12 + Python2.6 + C

1. 建立python源代码文件(del.py):

#!/usr/bin/env pythondef calculate(expression):try:result = eval(expression)except:print("Eval Error!")return Nonereturn resultif __name__ == "__main__":f = open("aa.log", "w")f.write("Hello world\n")f.close()print("what can I do for you")expression = "2^(4+2)"result = calculate(expression)print(result)

2. 建立C源程序(a.c):

/*功能:C程序中执行python代码或python源程序文件*/#include <Python.h>int main(){int n = 0;char fname[] = "del.py";FILE *fp = fopen(fname, "r");// 打开python源码文件if(fp == NULL){perror("fopen");return 1;}Py_Initialize();// 初始化python解释器n = PyRun_SimpleString("print(eval('2*6'))");// 执行python代码printf("1. n = %d\n\n", n);n = PyRun_SimpleFile(fp, fname);// 执行python文件printf("2. n = %d\n\n", n);Py_Finalize();fclose(fp);return 0;}

3. 编写makefile文件

CC=gccCFLAGS=-gBIN=a$(BIN): $(BIN).c$(CC) $(CFLAGS) -o $(BIN) $(BIN).c -I/usr/include/python2.6 -lpython2.6clean:rm -f *.o $(BIN)

4. 编译运行

[zcm@t #87]$lsa.c del.py makefile socket[zcm@t #88]$makegcc -g -o a a.c -I/usr/include/python2.6 -lpython2.6[zcm@t #89]$./a121. n = 0what can I do for you42. n = 0[zcm@t #90]$lsa aa.log a.c del.py makefile socket[zcm@t #91]$cat aa.logHello world[zcm@t #92]$

说明:这个代码演示的是python代码高级嵌入方式!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。