2017-09-01 3 views
-1

Ich habe dieses C SDK, an dem ich arbeite, um eine Python-Erweiterung für zu erstellen. Die C SDK-Dokumentation besagt, dass es in seinem Arbeitsverzeichnis eine ausführbare Datei erwartet. Meine aktuelle Projektstruktur ist:Python C-Erweiterung mit ausführbarer Abhängigkeit

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

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

Meine Frage ist, wie kann ich ein Paket ausführbare Abhängigkeit (ffmpeg in diesem Fall) mit meiner Erweiterung? Die ausführbare Datei wurde mit dem SDK bereitgestellt.

Antwort

0

Ich denke package_data kann dafür verwendet werden:

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

package_data ist ein dict . Schlüssel sind Submodulnamen; Eine leere Zeichenfolge bedeutet die Wurzel des Pakets. Werte sind Listen, die Dateimuster für benannte Submodule auflisten. Siehe docs.

Verwandte Themen