日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/9 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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=gcc CFLAGS=-g BIN=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]$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 12 1. n = 0what can I do for you 4 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代码或源程序文件(高级嵌入方式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。