Boost.Python-ImportError:动态模块未定义模块导出功能(PyInit_example)

时间:2019-04-02 12:52:23

标签: c++ python-3.x boost

我正在尝试使用命令行编译模块https://github.com/Auctoris/boost_python_impex

以下命令可成功构建并链接模块.so文件:

g++ -fPIC -I/usr/include/python3.6m library.cpp example.cpp -c
g++ -L /lib64 -shared example.o -o example.so -lpython3.6m -lboost_python3

但是,当我从python3导入模块时,出现以下错误消息:

  import example
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: dynamic module does not define module export function (PyInit_example)

我不理解此错误消息,因为library.cpp文件包含以下行:

BOOST_PYTHON_MODULE(example)

我正在从 Python3 导入模块。

我的编译命令出了什么问题/遗漏了什么?

我正在使用Fedora 64位。

谢谢!

1 个答案:

答案 0 :(得分:0)

以下编译命令可在Fedora 29上使用:

g++ -fPIC -I/usr/include/python3.6m library.cpp example.cpp -shared -o example.so -lboost_python3