具有可执行依赖性的Python C扩展

时间:2017-09-01 10:15:28

标签: python c setuptools distutils python-extensions

我有这个C SDK,我正在为它创建一个Python扩展。 C SDK文档说它期望在其工作目录中有ffmpeg个可执行文件。我目前的项目结构是:

my-extension/
    include/
        sdk-file.h
        sdk-file-2.h
    lib/
        sdk-lib.so
        sdk-lib2.so
    src/
        my-extension.c
    setup.py

我的setup.py:

from setuptools import setup
from setuptools.extension import Extension

setup(
    name='my_extension',
    version='develop',
    ext_modules=[Extension(
        'my_extension',
        ['src/my-extension.c'],
        include_dirs=['include'],
        library_dirs=['lib'],
        libraries=['sdk-lib', 'sdk-lib2',],
        runtime_library_dirs=['lib'],
    )]
)

我的问题是,如何在我的扩展程序中打包可执行依赖项(在这种情况下为ffmpeg)?可执行文件随SDK一起提供。

1 个答案:

答案 0 :(得分:0)

我认为package_data可用于此:

setup(
    …
    package_data={'': ['ffmpeg']},
    …
)

package_data是一个词典。键是子模块名称;空字符串表示包的根。值是列出命名子模块的文件模式的列表。请参阅docs