如何在c-library上正确组织cython包装器

时间:2019-04-10 16:13:23

标签: c python-3.x cython

为我提供了具有以下结构的C库:

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

我必须用Python封装它而无需更改。 src中的每个文件还包含type_alias。

我想要得到的是:

|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

0 个答案:

没有答案