使用boost.python从c ++调用Python函数

时间:2018-05-03 11:33:00

标签: python c++ boost-python

我有一个包含函数script.py的python脚本hello,它只打印Hello World。我想使用boost python模块在我的c ++程序中调用此函数。以下是我到目前为止所做的工作正常并验证我的设置是否有效。有人可以指导我如何在python脚本中包含的c ++程序中执行该函数吗?

#include <boost/python.hpp>
#include <cstdlib> // setenv
int main()
{
  // Allow Python to load modules from the current directory.
  //setenv("PYTHONPATH", ".", 1);
  // Initialize Python.
  Py_Initialize();

  namespace python = boost::python;
  try
  {
    python::object main_module = python::import("__main__");
    python::object main_namespace = main_module.attr("__dict__");

    python::object print = python::exec("from time import time,ctime\n"
                     "print 'Today is',ctime(time())\n", main_namespace);

  }
  catch (const python::error_already_set&)
  {
    PyErr_Print();
    return 1;
  }

  // Do not call Py_Finalize() with Boost.Python.
}

0 个答案:

没有答案