Как правильно организовать оболочку Cython поверх c-библиотеки - PullRequest
0 голосов
/ 10 апреля 2019

Мне дана C-библиотека со следующей структурой:

|include
|----base_func.h
|----type_alias.h
|src
|----base_func.c
|----func2.h
|----func2.c

Я должен обернуть ее Python без изменений.Также type_alias включен в каждый файл в src.

Что я хочу получить:

|setup.py
|clib
|----|include
|----|----base_func.h
|----|----type_alias.h
|----|src
|----|----base_func.c
|----|----func2.h
|----|----func2.c
|pywraper
|----|pxd_include
|----|----type_alias.pxd
|----base_func.pyx
|----func2.pyx

На данный момент у меня есть: setup.py

ext = Extension(
    name="pywrapper",
    sources=["**/*.pyx", "**/*.c"],
    language='c',
    include_dirs=["clib/include/", "lib/src/"]
)

setup(
    name="pywrapper",
    ext_modules=cythonize([ext], language_level=3)
)

type_alias.pxd

ctypedef int custom_int

base_func.pyx

from pxd_include.type_alias cimport *

cdef custom_int var1

Когда я пытаюсь построить это с python setup.py build_ext --inplace, я получаю сообщение об ошибке 'custom_int ' is not a type identifier

...