我正在编写一个嵌入到 C++ 应用程序中的 python。我声明需要嵌入的python(用户自定义)模块的相关代码片段如下:
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++ 代码知道它?