我在C++应用程序中编写了一个python嵌入。相关的代码片段,我声明蟒的模块(用户定义的),其需要被嵌入如下:嵌入式应用程序未检测到/已知C++模块
boost::python::object main_module = boost::python::import("__main__");
boost::python::object main_namespace = main_module.attr("__dict__");
boost::python::exec("import python_module", main_namespace); //This line is the culprit
然而,我卡时收到以下错误:
terminate called after throwing an instance of 'boost::python::error_already_set'
我的用户定义的python模块与我的C++代码位于同一个目录中。当我尝试使用numpy
这个工程时,问题是只有用户定义的那个,它不会。可以做些什么来调试它?
编辑:
后,我包括在try/catch块的代码,我得到下面的编译错误:
ImportError: No module named python_module
我也尝试添加此:
boost::python::exec("import sys; sys.path.append('/path/to/python_module.py');", main_namespace);
boost::python::exec("import python_module", main_namespace);
但还没有工作。
现在的问题是如何让我的C++代码知道它?