我开始玩图书馆pybind11。这是一个非常好的库,有据可查,它适用于我,但仅适用于 Python 2.7。我无法让它为 Python 3.5 工作,我不知道我做错了什么。
这是我的“hello world”程序:
#include <pybind11/pybind11.h>
namespace py = pybind11;
const char * world() { return "Hello world!"; }
int main(int argc, char ** argv) {
Py_Initialize();
py::module m("hello", "my hello world Python module with pybind11");
m.def("world", &world);
PyRun_SimpleString("import hello\nprint( hello.world() )");
Py_Finalize();
return 0;
}
如果我针对 2.7 进行编译和链接,我会得到预期的结果:
Hello world!
但是,如果我将完全相同的代码与 Python 3.5 链接起来,加载模块时会出错。
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named 'hello'
有任何想法吗?