Справочная информация:
Я использовал SWIG для разработки оболочки Python для библиотеки C / C ++.
Теперь мне нужно использовать setuptools
упаковать проект для распространения. Пакет должен включать сгенерированное SWIG расширение C и все зависимости DLL. Моя директория проекта выглядит следующим образом:
project_directory/
|
--- foo_mod/
| |
| --- __init__.py
|
--- libs/
| |
| --- lib_a.dll
| --- lib_b.dll
|
--- core.py (generated by SWIG)
--- core_wrap.cxx (generated by SWIG)
--- core_wrap.h
--- setup.py
Что я пробовал:
from setuptools import setup, find_packages, Extension
application_module = Extension(
'_core',
)
setup(
name='foo_mod',
version='0.1',
author="My Name",
email="my.name@company.com",
description="""Simple example""",
ext_modules=[application_module],
packages=find_packages(),
package_data={
"" : ['libs/*.dll']
},
py_modules=['core'],
python_requires='>=3.6')
Команда для создания расширения:
PS > python setup.py build_ext --build-lib .\foo_mod
После этой команды расширение python _core.pyd
записывается в foo_mod\
.
Команда для сборки пакета:
PS > python setup.py sdist bdist_wheel
Проблема: Расширение _core.pyd
и библиотеки не включены в колесо.
Вопрос: Как правильно включить зависимости библиотеки в пакет?