在Cython单元格魔术中调用cdef函数

2024-04-27 00:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个cython模块保存为foo.pyx,如下所示:

cdef double sum(double[:] memview):
    cdef total = 0
    for i in range(len(memview):
        total += memview[i]
    return total

然后我用!cython -a foo.pyx编译它。在

我想用cython细胞魔法测试这个函数,如下所示:

^{pr2}$

但当我尝试get_sum()时,我得到:

AttributeError: 'module' object has no attribute 'sum'

我做错什么了?在


Tags: 模块inforlenreturnfoorangecython
1条回答
网友
1楼 · 发布于 2024-04-27 00:29:24

要使其工作,您需要cimtort cython模块。 这将需要一个对应的pxd,其中包含您希望从模块导出的函数签名。 有关完整的工作示例,请参见documentation的相关部分。在

这假设您的文件都在同一个工作目录中。 否则,您将需要在传递给Extension类构造函数的include_dirs参数中包含包含包含pyx和pxd文件的相关文件夹的相关文件夹设置.py不同模块的文件。在

相关问题 更多 >