• 1000 код неверен, и это вызывает проблемы при попытке запустить цитонизированный код.
Вот упрощенный пример:
a.py
def test_func(arg1) -> str:
return {"hello": "world"}
Ошибка при попытка запустить код после запуска cythonize
TypeError: Expected unicode, got dict
Все работает нормально, если я удалю аннотацию -> str
. Итак, есть ли способ указать cython игнорировать все аннотации?
Я знаю, что правильный способ решить эту проблему - исправить подсказки типа, но я пытаюсь найти альтернативное решение, пока исправляю аннотации .
Это мой setup.py
#cython: language_level=3
#cython: annotation_typing=False
from setuptools import setup
from setuptools.extension import Extension
from Cython.Build import cythonize
from Cython.Distutils import build_ext
setup(
name="lib",
ext_modules=cythonize(
[
Extension("pkg1.*", ["pkg1/*.py"], include_dirs = ["."], extra_compile_args = ['-O3']),
],
build_dir="build",
compiler_directives=dict(
always_allow_keywords=True,
language_level=3)),
cmdclass=dict(
build_ext=build_ext
),
packages=["pkg1"]
)
Спасибо.