c++ - Boost.Python - ImportError:动态模块未定义模块导出函数(PyInit_example)
问题描述
我正在尝试使用命令行编译模块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 位。
谢谢!
解决方案
以下编译命令适用于 Fedora 29:
g++ -fPIC -I/usr/include/python3.6m library.cpp example.cpp -shared -o example.so -lboost_python3
推荐阅读
- unity3d - Unity中的多层纹理着色器
- puppet - 如何在 Redhat 中安装 Puppet Enterprise?
- python - 使用格式而不是 f 字符串
- excel - 如何遍历单元格列并写入另一列单元格
- python-3.x - pyspark 将两个数据框与添加的项目/条件合并
- mysql - 如何在 SQL 中查找表中的唯一键
- arrays - 如何使用swift在数组中排列对象属性顺序相同
- c++ - 为什么我的函数不能用字符串的最后一个字符切换第一个字符?
- android - 片段开始时如何将焦点设置为editText?
- ansible - ansible with_sequence 结果消息隐藏