Python/C++ API使用注意事项 (Python & C++ 混编)

  1. Py_Initialize,Py_Finalize 的调用次数最好为一次,经尝试重复调用将抛出异常
  2. Python 指针对象应在最后使用 Py_DECREF 进行delete
  3. 外部库需要自己拷贝,同时使用 sys.path.append() 将其包含进系统路径。
  4. 具体代码实现见 : HeartCare
  5. Python 的 C++ API 的变量类型均采用 PyObject
  6. 代码注释如下
Py_Initialize(); // 初始化
Py_IsInitialized(); // 判断是否初始化
Py_Finalize(); // 释放
PyRun_SimpleString(); //以字符串类型执行python语句
PyObject_CallFunction(callable,args,...); //调用函数,其中callable是获得的函数指针;args是参变量...的组成,例如`'ss'则是两个字符串;...则是参数的组成,这里采用变参函数的编写方式。
PyList_GetItem(); //得到Item, 无需考虑python变量类型
PyImport_ImportModule(); //引入模型
PyObject_GetAttrString(); //获得属性
PyXX_AsXX(); //用于将python变量转换为c++变量
  1. 最好使用嵌入式Python(
    Windows x86-64 embeddable zip file),实现真正意义上的独立程序,不然还需要安装python,以保证基础模块的路径可知,不然无法import使用基础模块的外部库。
发布了31 篇原创文章 · 获赞 42 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Flame_alone/article/details/104258642