我正在尝试使用cython将python函数编译成C。函数main.py是:
def Factorial(y):
x=0
for i in range(1,y-1):
x+=i
return x我用main.pyx中的Cython代码重写了它
def Factorial_cdef(int y):
return(Factorial_in_c(y))
cdef int Factorial_in_c(int y):
int x = 0
int i
for i in range(1,y+1):
x+=i
return x
cpdef int Factorial_cpdef(int y):
return Factorial_cdef(y)要编译成C,我创建了脚本setup.py
from setuptools import setup
from Cython.Build import cythonize
ext_modules = cythonize(
compiler_directives={'language_level' : "3"}
)
setup(
ext_modules = cythonize('main_10factorial.pyx')
)在命令行中运行代码(在同一文件夹中):
py setup.py build_ext --inplace我得到以下错误:
TypeError: cythonize() missing 1 required positional argument: 'module_list'我在网上找不到任何关于这个错误的参考。
发布于 2022-09-30 14:16:53
您在那里有一个额外的cythonize调用,它缺少模块列表。就这么做
from setuptools import setup
from Cython.Build import cythonize
setup(
ext_modules=cythonize(
"main_10factorial.pyx",
compiler_directives={
"language_level": "3"
},
)
)你应该可以走了。
https://stackoverflow.com/questions/73910113
复制相似问题