C语言中执行python代码或源程序文件(高级嵌入方式)
2022/10/16 1:26:11
本文主要是介绍C语言中执行python代码或源程序文件(高级嵌入方式),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
环境:Fedora12 + Python2.6 + C
1. 建立python源代码文件(del.py):
#!/usr/bin/env python def calculate(expression): try: result = eval(expression) except: print("Eval Error!") return None return result if __name__ == "__main__": f = open("aa.log", "w") f.write("Hello world ") 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 = PyRun_SimpleFile(fp, fname); // 执行python文件 printf("2. n = %d ", n); Py_Finalize(); fclose(fp); return 0; }
3. 编写makefile文件
CC=gcc CFLAGS=-g BIN=a $(BIN): $(BIN).c $(CC) $(CFLAGS) -o $(BIN) $(BIN).c -I/usr/include/python2.6 -lpython2.6 clean: rm -f *.o $(BIN)
4. 编译运行
[zcm@t #87]$ls a.c del.py makefile socket [zcm@t #88]$make gcc -g -o a a.c -I/usr/include/python2.6 -lpython2.6 [zcm@t #89]$./a 1. n = 0 what can I do for you 2. n = 0 [zcm@t #90]$ls a aa.log a.c del.py makefile socket [zcm@t #91]$cat aa.log Hello world [zcm@t #92]$
说明:这个代码演示的是python代码高级嵌入方式!
这篇关于C语言中执行python代码或源程序文件(高级嵌入方式)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享