【发布时间】:2012-03-06 07:44:26
【问题描述】:
我正在使用 Boost.Python 在我的 C++ 可执行文件中嵌入解释器并执行一些预先编写的脚本。我已经让它工作了,这样我就可以调用 python 文件中的函数,但是我想使用的 python 代码导入外部文件,这些导入失败,因为“没有名为的模块”。如果我直接从 python 运行脚本,那么一切都会按预期工作。
所以我的问题是在通过 C++ 绑定运行的 python 脚本中导入模块的正确方法是什么?
C++ 代码:
#include "boost/python.hpp"
int main(int argc, char** argv)
{
try
{
Py_Initialize();
boost::python::object test = boost::python::import("__main__");
boost::python::object testDict = test.attr("__dict__");
boost::python::exec_file("test.py", testDict, testDict);
}
catch(boost::python::error_already_set& e)
{
PyErr_Print();
}
return 0;
}
Python 代码:
import ModuleX
【问题讨论】:
标签: python c++ boost import boost-python