好文档 - 专业文书写作范文服务资料分享网站

C语言中调用python

天下 分享 时间: 加入收藏 我要投稿 点赞

C语言中调用python(1)(无参数传递) 1:Python简介

Python是一种脚本语言,不需要编译就可以被直接运行,只要编写完程序后修改文件的属性为可执行,就可被运行。 2:C语言中调用python的步骤

2.1:Ubuntu下首先要配置下环境(安装python-dev,即python core developer)

sudo apt-get install python-dev 或者 sudo aptitude install python-dev 2.2:编写python文件

2.3:编写C程序

1. 设置编译环境,其实就是设置Python的头文件和库文件目录 2. 初始化Python解释器: Py_Initialize();

3. 调用Python文件中的函数 4. 释放资源 Py_Finalize();

2.4:编译C程序

gcc -o emc emc.c -I/usr/include/python2.3 -lpython2.3 -L/usr/lib/python2.2/config 其中:

-I/usr/include/python2.3 -Idir 添加查找头文件的目录 -lpython2.3 添加python2.5库 -L/usr/lib/python2.2/config -Ldir 制定编译的时候,搜索库的路径。比如你自己的库,可以用它制定目录,不

然编译器将只在标准库的目录找。这个dir就是目录的名称。

注释

Python-dev python-dev on Freenode is for CPython developers, where they can coordinate their work or discuss problems.

Cpython CPython是用C语言实现的Python解释器,也是官方的并且是最广泛使用的Python解释器。

3:C语言中直接调用python脚本函数

去掉2.2,并且将2.3中的第三步直接修改为函数 PyRun_SimpleString()。

4:例子

看一个很简单的例子

1)python文件test.py,很简单的定义了一个函数

1. #Filename test.py 2. def Hello():

3. print \

这个应该能看懂的吧?否则的话,回去再练练python吧,呵呵。《简明Python教程》Swaroop, C. H. 著。沈洁元 译。

2)cpp文件

1. #include //包含头文件,在c++中嵌入python,这是必须的 2. int main() 3. {

4. Py_Initialize(); 5.

6. PyObject * pModule = NULL; 7. PyObject * pFunc = NULL; 8.

9. pModule = PyImport_ImportModule(\

10. pFunc = PyObject_GetAttrString(pModule, \11. PyEval_CallObject(pFunc, NULL); 12.

13. Py_Finalize(); 14.

15. return 0; 16.}

第一步还是包含头文件

第二步,使用python之前,要调用Py_Initialize();这个函数进行初始化。 帮助文档中如是说:

The basic initialization function is Py_Initialize(). This initializes the table of loaded modules, and creates the fundamental modules __builtin__, __main__, sys, and exceptions. It also initializes the module search path (sys.path). 反正,一开始你一定要调用。

第三步,声明一些Python的变量,PyObject类型的。其实声明也可放在前面,这个倒是无所谓的。

第四步,import module,也就是你的脚本名字,不需要加后缀名,否则会出错的。 第五步,从你import进来的module中得到你要的函数 pFunc = PyObject_GetAttrString(pModule, \

上面的例子已经够清楚的了,最后一个是你要得到的函数的名字

第六步,调用PyEval_CallObject来执行你的函数,第二个参数为我们要调用的函数的函数,本例子不含参数,所以设置为NULL。

第七步,调用Py_Finalize,这个根Py_Initialize相对应的。一个在最前面,一个在最后面。

参考文献

[1] c++中嵌入python入门 http://www.rosoo.net/a/201006/9574.html

[2] Embedding Python in Your C Programs http://www.linuxjournal.com/article/8497

C语言中调用python

C语言中调用python(1)(无参数传递)1:Python简介Python是一种脚本语言,不需要编译就可以被直接运行,只要编写完程序后修改文件的属性为可执行,就可被运行。2:C语言中调用python的步骤2.1:Ubuntu下首先要配置下环境(安装python-dev,即pythoncoredeveloper)sudoapt-ge
推荐度:
点击下载文档文档为doc格式
9uwry49std6u75f0arcn
领取福利

微信扫码领取福利

微信扫码分享