Chinaunix首页 | 论坛 | 博客
  • 博客访问: 474530
  • 博文数量: 280
  • 博客积分: 337
  • 博客等级: 二等列兵
  • 技术积分: 1957
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-17 21:36
文章分类

全部博文(280)

文章存档

2017年(13)

2016年(38)

2015年(78)

2014年(67)

2013年(70)

2012年(14)

分类:

2012-11-24 22:00:45

原文地址:linux 下C调用Python 模块 作者:kouyanghao

最近做一个移植项目, 用到C调用Python, 在网上搜了好多资料,但是发现按照上面介绍的一步一步来, 根本行不通,最后还是根据系统报出的错误,进行调试才成功, 所以感觉很有必要做下记录。
      下面以main.c 调用 hellWorld.py 函数为例进行说明。
       helloWorld.py 的内容很简单只是定义了hello函数然后输出“Hello World”

main.c 函数也比较简单,主要是初始化python,以及导入python的模块等

里面的Python_Initialize()主要是初始化python解释器。
      Py_SimpleString("import sys")相当于在python中的import sys语句。
      Py_SimpleString("sys.path.append('./')")是将搜索路径设置为当前目录。
      Py_ImportModule("helloWorld")是利用导入文件函数将helloWorld.py函数导入。
      PyObject_GetAttrString(pModule, "hello")是在pyton引用模块helloWorld.py中查找hello函数。
接着调用PyEval_CallObject(pFunc, NULL)调用hello函数。
      最后是清理python环境释放资源。

     在写好了helloWorld.py和main.c函数后就得写Makefile函数了,Makefile函数代码如下:
     
     
      make后生成main,./main运行结果:
    
    
      结果打印出了helloWorld.py中的数据, 说明C调用Python成功!


阅读(986) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~