我有以下代码
#include <boost/python.hpp>
int main()
{
Py_Initialize();
namespace python = boost::python;
try {
python::object main = python::import("sample");
} catch(...) {
PyErr_Print();
PyErr_Clear();
}
}
我收到以下错误:
ImportError: No module named sample
我将sample.py放在与此程序相同的目录中。
答案 0 :(得分:4)
这是因为python :: import没有在当前目录中查找。我知道有两种解决方法:
设置PYTHONPATH以查看当前目录(linux):
export PYTHONPATH=`pwd`:$PYTHONPATH
...或
在代码中设置python搜索模块路径(它还提供了有关您发现的问题的更好解释): How does import work with Boost.Python from inside python files