第一范文网 - 专业文章范例文档资料分享平台

C语言中调用python

来源:用户分享 时间:2025/11/11 20:23:20 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c9uwry49std6u75f0arcn_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top