使用setuptools

时间:2018-03-05 13:45:02

标签: python c++ setuptools pybind11

我有一个名为VBB.cpp的C ++文件,其中包含几个类的实现,我使用pybind11库为这些类编写了Python绑定,这些文件位于bindings.cpp。我可以用以下代码成功编译代码:

g++ -O3 -Wall -shared -std=c++11 -fPIC `python3 -m pybind11 --includes` bindings.cpp VBB.cpp -o VBB`python3-config --extension-suffix

然后使用来自Python的C ++代码import library

我希望通过setuptools将其转换为Python包。我刚刚使用https://github.com/pybind/python_example提供的示例setup.py文件,并使用

修改了Extension来电
Extension(
        'VBB',
        ['src/bindings.cpp', 'src/VBB.cpp'],
        include_dirs=[
            # Path to pybind11 headers
            get_pybind_include(),
            get_pybind_include(user=True)
        ],
        language='c++'
    ),

如果我运行安装脚本,它会编译,但如果我尝试在Python中运行import VBB,我会收到以下错误:

ImportError: dynamic module does not define module export function (PyInit_VBB)

我刚才使用setuptools,所以我不确定我是否做错了什么。 GitHub的示例包没有任何问题。

0 个答案:

没有答案