Cython编译 TypeError: func() takes no keyword arguments 深坑

 今天使用Flask写了个接口,本地测试正常,仿到服务器上就报错,而且是特定函数报错.TypeError: func() takes no keyword arguments

一直以为是关键词冲突了. 后来调试半天,最后定位到是cython的问题

下面的方法无效

setup (
name = ‘xxxx’,
ext_modules = cythonize(["src/*.py"], compiler_directives={"always_allow_keywords": True})
)

最终解决办法,给函数的参数一个默认值即可.

# 原来
def func(a,b): pass
# 修改后
def func(a=None, b=None): pass

发表评论

您的电子邮箱地址不会被公开。