2017-09-01 4 views
-1

J'ai ce C SDK sur lequel je travaille pour créer une extension Python. La documentation C SDK indique qu'il attend un ffmpeg exécutable dans son répertoire de travail. Ma structure actuelle du projet est:Extension Python C avec dépendance exécutable

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

Mon 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'], 
    )] 
) 

Ma question est, comment dois-je emballer une dépendance exécutable (ffmpeg dans ce cas) avec mon extension? Le fichier exécutable a été fourni avec le SDK.

Répondre

0

Je pense que package_data peut être utilisé pour cela:

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

package_data est un dict. Les clés sont des noms de sous-modules; une chaîne vide signifie la racine du paquet. Les valeurs sont des listes qui répertorient les modèles de fichiers pour les sous-modules nommés. Voir le docs.