linux下c++ 和python的混合编程

来源:互联网 发布:百度seo站外优化 编辑:程序博客网 时间:2024/06/06 10:02

一:环境

1. 首先在c++ 文件中包含头文件  #include <Python.h> -->todo:为什么我的环境中需要写绝对路径 " /usr/include "

2. 编译时加上python的库文件 -lpython2.*

二: c++调用python的方法

1.调用Py_Initialize()-----》初始化编译器环境。

2. 声明一个PyObject类型的变量。

3. import module :module为python脚本名字。注意:Module 要放在 /usr/lib/python2.4/site-packages 目录下,不然写绝对路径也找不到。todo ----> 寻找别的方式。

4.从import进来的module中得函数
pFunc = PyObject_GetAttrString(pModule, "run");

5.调用PyEval_CallObject来执行你的函数,第二个参数为要调用的参数。

6.调用Py_Finalize 清理环境。

三 例子

有一个名为FakeSelector.py的python脚本,里面定义了一个函数run()

c++ 程序中调用该脚本run函数的方法为:

Py_Initialize();

PyObject * pModule = NULL;

PyObject * pFunc = NULL;

pModule = PyImport_ImportModule("FakeSelector"); --注意:不能加后缀,否则会出错。

pFunc = PyObject_GetAttrString(pModule,"run");

PyEval_CallObject(pFunc, NULL);

Py_Finalize();

 

 

原创粉丝点击