! Все работает с language_level = 2, но не с language_level = 3
Мне нужно обернуть c-библиотеку Cython, и я также хочу скопировать структуру библиотеки для лучшего понимания.Поэтому я хотел бы создать отдельную папку с файлами pxd.
Структура проекта следующая:
![enter image description here](https://i.stack.imgur.com/uSOLr.png)
setup.py:
from setuptools import setup, Extension
from Cython.Build import cythonize
from Cython.Distutils import build_ext
from pathlib import Path
setup_file_directory = Path(__file__).resolve().parent
NAME = 'example'
SRC_DIR = "lib"
PACKAGES = [SRC_DIR]
ext = Extension(name=SRC_DIR + ".wrapper.some_code",
sources=[SRC_DIR + "/wrapper/some_code.pyx"]
)
EXTENSIONS = [ext]
if __name__ == "__main__":
setup(
packages=PACKAGES,
zip_safe=False,
name=NAME,
cmdclass={"build_ext": build_ext},
ext_modules=cythonize(EXTENSIONS, language_level=3),
)
some_code.pyx:
from pxd_include.inc_file cimport *
cdef custom_int return_int(custom_int input_int):
print(input_int)
inc_file.pxd:
ctypedef int custom_int
с language_level = 2 в setup.py все работает и компилируется.Если я переключаю его на 3, я получаю сообщение об ошибке:
![enter image description here](https://i.stack.imgur.com/x3kcv.png)
Это вызвано невозможностью импортировать файл pxd с language_level = 3.Как это исправить?