为什么我的 pxd 文件的 Cython cimport 不起作用?

2024-04-24

我是 Cython 的新手,所以我可能会遗漏一些明显的东西,但我已经通读了文档并对此进行了一段时间的思考。

我有一个*.pyx我使用构建的文件setup.py文件如下:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("path/to/helpers.pyx"),
)

效果很好,我现在可以import path.to.helpers从姊妹目录和子目录中没有任何问题。

现在,最近我决定添加一个helpers.pxd文件也一样,所以我可以cimport它的一部分到其他 Cython 模块。我添加了一个helpers.pxd in path/to为了促进这一点,但是当我尝试cimport path.to.helpers, I get

path/to/helpers.pxd not found

错误。我需要改变一些东西吗?setup.py文件允许cimport正在从*.pxd file?

我发现的文档都没有提到这样做,而且我觉得我已经尝试了所有方法但没有任何运气。有想法吗?


经过几个小时的头撞后终于解决了这个问题。*.pxd文件更加挑剔path than *.pyx事实证明。我不知道为什么。无论如何,只需将路径添加到我的*.pxd文件解决了问题。我的setup.py for path/to/helpers.*保持不变,但每当我使用任何其他*.pyx需要访问的文件path.to.helpers,我确定路径path/to/helpers被包含为include-dir, like:

cython *.pyx *.pxd -a --cplus --include-dir ../some/path

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我的 pxd 文件的 Cython cimport 不起作用? 的相关文章

随机推荐