【问题标题】:Boost.Python - ImportError: dynamic module does not define module export function (PyInit_example)Boost.Python - ImportError:动态模块未定义模块导出函数(PyInit_example)
【发布时间】:2019-04-02 12:52:22
【问题描述】:

我正在尝试使用命令行编译模块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 位。

谢谢!

【问题讨论】:

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


    【解决方案1】:

    以下编译命令适用于 Fedora 29:

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

    【讨论】:

      猜你喜欢
      • 2021-12-23
      • 2016-12-30
      • 2023-03-10
      • 2016-03-21
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 2015-03-18
      相关资源
      最近更新 更多