刚好几个月前做过,C++ 函数里面先加载python 脚本,再调用 里面的 def 函数,我把代码贴出来,你在main 函数里面,调用getDataByScript 函数,另外相同目录下放一个 fuckTest.py ,我是centos6.7 
  编译 
g++ -o test test.cpp -lpython2.7  
  
  
callPython.h 
#include<Python.h> 
#include<string> 
using namespace std; 
  
char* getDataByScript(const char* moduleName,int& bufferSize,int& errInfo) 

     errInfo = 0; 
     bufferSize = 0; 
     Py_Initialize(); 
     if(!Py_IsInitialized()) 
     { 
         errInfo = 1; 
         return NULL; 
     } 
     PyRun_SimpleString("import sys"); 
     PyRun_SimpleString("sys.path.insert(0,'./')"); 
     //PyRun_SimpleString("print sys.path"); 
     PyObject* pName = PyString_FromString(moduleName); 
     PyObject* pModule = PyImport_Import(pName); 
     if(!pModule) 
     { 
         printf("can't import error\n"); 
         errInfo = 2; 
         return NULL; 
     } 
     PyObject* pDict = PyModule_GetDict(pModule); 
     if(!pDict) 
     { 
         errInfo = 3; 
         return NULL; 
     } 
  
     PyObject* pFunc = PyDict_GetItemString(pDict,"callFuncNoArgs"); 
     if(!pFunc || !PyCallable_Check(pFunc)) 
     { 
         errInfo = 4; 
         return NULL; 
     } 
     //PyObject* pArgs = PyTuple_New(2); 
     //PyTuple_SetItem(pArgs,0,Py_BuildValue("l",100)); 
     //PyTuple_SetItem(pArgs,1,Py_BuildValue("l",200)); 
     PyObject* res = PyObject_CallObject(pFunc,NULL); 
     if(!PyString_Check(res)) 
     { 
         errInfo = 5; 
         return NULL; 
     } 
    else 
     { 
         bufferSize = int(PyString_Size(res)); 
         return (char*)PyString_AsString(res); 
     } 

  
  
test.cpp 
  
#include <iostream> 
#include"callPython.h" 
using namespace std; 
int main() 

     int size =0; 
     int errInfo = 0; 
     getDataByScript("fuckTest",size,errInfo); 
     return 0; 

  
fuckTest.py 
  
def callFuncNoArgs(): 
     print "test.py func called !!!" 
     return "fuck"

转载于:https://www.cnblogs.com/jkred369/p/7406123.html

C 语言调用python 脚本函数相关推荐

  1. C语言调用Python脚本

    目录 一.头文件 二.使用步骤 1.初始化python模块 2.设置python的搜索路径 3.导入python脚本 4.导入调用的方法 5.构建参数 6.调用方法 7.解析返回值 8.释放资源 三. ...

  2. C++调用Python脚本函数

    C++调用Python脚本函数 文章目录 C++调用Python脚本函数 1.编写python脚本,并下载安装所需的库文件(保证编写的python脚本在指定的虚拟环境下可以正常运行) 2.在Vs201 ...

  3. go语言调用python脚本_Golang调用Python

    Python是时髦的机器学习御用开发语言,Golang是大红大紫的新时代后端开发语言.Python很适合让搞算法的写写模型,而Golang很适合提供API服务,两位同志都红的发紫,这里就介绍一下正确搅 ...

  4. Java调用Python脚本:轻松实现两种语言的互操作性

    Java和Python都是非常流行的编程语言,它们都有自己的优点,但也有自己的局限性.在编写应用程序时,我们可能需要使用两种语言来共同完成一项任务.在这种情况下,Java需要调用Python脚本来解决 ...

  5. 【Python】如何在Excel中调用Python脚本,实现数据自动化处理

    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5 ...

  6. java 调用python脚本过程_通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  7. 如何在Excel中调用Python脚本,实现数据自动化处理!

    大家好, 这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球 ...

  8. 如何在Excel中调用Python脚本,实现数据自动化处理

    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5 ...

  9. C#调用Python脚本训练并生成AI模型(以Paddle框架为例)

    目录 一. C#调用通过IronPython语言移植 1.1 IronPython安装 1.2 示例代码 1.3 运行结果 1.4 特点 二. C#调用Python文件打包dll 2.1 步骤 2.1 ...

  10. Ubuntu下读取CHUSEI 3D Webcam 双目摄像头C++版本(调用python脚本进行配置)

    本博客做了一个工作--Ubuntu下用OpenCV读取CHUSEI 3D Webcam 双目摄像头(C++版本),希望能给予有需要的朋友一个参考. 购买了CHUSEI 3D Webcam 双目摄像头问 ...

最新文章

  1. 《Offer一箩筐》2W字总结面试套路14问——不给例子的教程都是耍流氓!!
  2. 怎么样用idea上传git?-通俗易懂
  3. LSTM:《Long Short-Term Memory》的翻译并解读
  4. 【笔记】opencv的python使用 腐蚀模糊背景分割等处理图像
  5. java画虚线_java cansvas 画虚线要怎么设置?
  6. 文献学习(part52)--基于泛岭估计对岭估计过度压缩的改进方法
  7. python中定义数据结构_Python中的数据结构。
  8. 去除标题_资深运营导师-云中教你轻松写标题
  9. python虚拟环境安装的包在哪_如何使用virtualenv引导脚本在虚拟环境中安装python包?...
  10. java制作扫雷游戏中埋雷的难点_月薪30K程序员花了一个小时,用c++做出经典扫雷游戏 !...
  11. 【Elasticsearch】Elasticsearch mapping 映射对象
  12. getQueryString方法使用
  13. java 安全发布对象_Java安全的发布对象
  14. 华为紧急调试鸿蒙;首个 5G 全覆盖国家诞生;Flutter 1.7 正式发布 | 极客头条
  15. 多图详解Spring框架的设计理念与设计模式
  16. 阿里云服务器是干什么用的?
  17. 电子设计之硬件开发流程和前辈的指导
  18. Liferay使用管理中的一些常见问题
  19. 软件工程网络15个人阅读作业1(201521123111 陈伟泽)
  20. 网上靠谱的赚钱方法,这四个可以尝试做一做!

热门文章

  1. 除了输入法,移动端AI还有哪些想象空间?
  2. 别被IBM抛出的“认知商业”搞晕 这里为你详解
  3. 外包如何安排人手-b
  4. [Android]-图片JNI(C++\Java)高斯模糊的实现与比较
  5. ListView嵌套ScrollView后,设置dividerHeight属性后高度计算
  6. BZOJ3190[JLOI2013] 赛车
  7. 数组模拟栈解决括号匹配
  8. 一夜上手uni-app
  9. vue学习笔记-11-自定义指令
  10. Eclipse使用Git上传新项目到GitHub