Cython代码无法运行

2 投票
1 回答
552 浏览
提问于 2025-04-15 21:41

我写了一些Python代码,运行得很好。后来我用“Cython”把它转换成了C语言,并使用distutils把它编译成了一个共享库。接着,我把一些代码改成了Cython,以便让它运行得更快。但是,当我导入这个.so模块并尝试使用我用“cdef”声明的命令时,系统却说这个命令不存在。

原始代码:

import time as t
def time(function):
    t1 = t.time()
    function()
    t2 = t.time()
    return t2 - t1

新代码:

import time as t
cdef time(function):
    t1 = t.time()
    function()
    t2 = t.time()
    return t2 - t1

我尝试使用“cdef int time”,但结果还是一样。有什么建议吗?

1 个回答

2

cdef 函数是不能直接在 Python 中使用的。为了让一个用 Cython 定义的 C 函数可以在 Python 中调用,我们使用 cpdef 来提供一个 Python 的包装。

另外,你可能使用 timeit 这个工具会更好,而不是自己去实现这个功能。

撰写回答