У меня есть C ++ файл VBB.cpp
который содержит реализации нескольких классов, и я написал привязки Python для этих классов, используя pybind11
библиотека, они расположены в bindings.cpp
, Я могу успешно скомпилировать код с:
g++ -O3 -Wall -shared -std=c++11 -fPIC `python3 -m pybind11 --includes` bindings.cpp VBB.cpp -o VBB`python3-config --extension-suffix
А затем используйте код C ++ из Python с import library
,
Я хочу превратить это в пакет Python через setuptools
, Я просто использовал пример setup.py
файл доступен на https://github.com/pybind/python_example и изменил 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++'
),
Если я запускаю скрипт установки, он компилируется, но если я пытаюсь запустить import VBB
в Python я получаю следующую ошибку:
ImportError: dynamic module does not define module export function (PyInit_VBB)
Я новичок в использовании setuptools
поэтому я не уверен, что делаю что-то не так. Пример пакета от GitHub работает без проблем.
Задача ещё не решена.
Других решений пока нет …