我有一个包含函数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.
}