使用boost python嵌入python时导入错误

Yan*_*Zhu 0 c++ boost-python

我有以下代码

#include <boost/python.hpp>

int main()
{
    Py_Initialize();
    namespace python = boost::python;
    try {
        python::object main = python::import("sample");
    } catch(...) {
        PyErr_Print();
        PyErr_Clear();
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ImportError: No module named sample
Run Code Online (Sandbox Code Playgroud)

我将我的 sample.py 放在与该程序相同的目录中。

Hug*_*rrá 5

这是因为 python::import 没有在当前目录中查找。我知道两种解决方法:

设置 PYTHONPATH 以查看当前目录 (linux):

export PYTHONPATH=`pwd`:$PYTHONPATH
Run Code Online (Sandbox Code Playgroud)

或者...

在您的代码中设置 python 搜索模块路径(它还提供了关于您发现的问题的更好解释): How do does import work with Boost.Python from inside python files