zoukankan      html  css  js  c++  java
  • cpp调用python

    1 头文件:#include <Python.h>

    2 编译坑:

    3 函数说明:示例

    /**g++ -o callpy callpy.cpp -I/usr/include/python2.6 -L/usr/lib64/python2.6/config -lpython2.6**/
    #include <Python.h>

    int main(int argc, char** argv) {

      Py_Initialize();
      if ( !Py_IsInitialized() ) { return -1; }

      PyRun_SimpleString("import sys");
      PyRun_SimpleString("sys.path.append('./')");
      PyObject *pName,*pModule,*pDict,*pFunc,*pArgs;

      // 载入名为pytest的脚本
      pName = PyString_FromString("pytest");
      pModule = PyImport_Import(pName);
      if ( !pModule ) { return -1; }
      pDict = PyModule_GetDict(pModule);
      if ( !pDict ) { return -1; }

      // 找出函数名为add的函数
      pFunc = PyDict_GetItemString(pDict, "add");

      // 参数进栈
      PyObject *pArgs;
      pArgs = PyTuple_New(2);

      PyTuple_SetItem(pArgs, 0, Py_BuildValue("l",3));
      PyTuple_SetItem(pArgs, 1, Py_BuildValue("l",4));

      // 调用Python函数
      PyObject_CallObject(pFunc, pArgs);

      Py_DECREF(pName);
      Py_DECREF(pArgs);
      Py_DECREF(pModule);

      // 关闭Python
      Py_Finalize();
      return 0;
    }

  • 相关阅读:
    冒泡排序
    数据结构和算法关系
    js获取ifram对象
    java STL
    bufferedReader 乱码问题
    css animation让图标不断旋转
    apply通过实例理解
    jquery.ajaxfileupload.js
    JDBC getMetaData将结果集组装到List
    Android开发之使用BaseAdapter的notifyDataSetChanged()无法更新列表
  • 原文地址:https://www.cnblogs.com/hanlaomo/p/13932883.html
Copyright © 2011-2022 走看看