为什么我的Cython cimport不能用于pxd文件?

时间:2016-04-14 01:52:23

标签: python cython distutils

我是cython的新手,所以我可能会遗漏一些显而易见的东西,但是我已经阅读了文档,并且已经对这个问题进行了一段时间的反对。

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

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

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

工作正常,我现在可以从姐妹目录和子目录中import path.to.helpers而没有任何问题。

现在,我最近决定添加一个helpers.pxd文件,因此我可以将其中的部分内容添加到其他cython模块中。我在path/to中添加了一个helpers.pxd来促进这一点,但是当我尝试cimport path.to.helpers时,我得到了path/to/helpers.pxd not found个错误。我是否需要在setup.py中更改某些内容以允许从pxd进行cimporting?我发现的所有文档都没有说出这样的事情,我觉得我已经尝试过所有事情而没有任何运气。想法?

2 个答案:

答案 0 :(得分:1)

最后在我的头撞击它之后解决了这个问题。事实证明,对于path而言,Pxds比pyxs更加挑剔。我不知道为什么。无论如何,只是添加到我的pxd的路径修复了问题。我setup.py的{​​{1}}保持不变,但每当我使用需要访问path/to/helpers.*的任何其他pyx时,我都会确保包含path.to.helpers的路径作为path/to/helpers,如:

include-dir

答案 1 :(得分:0)

尝试在__init__.py目录中添加path/to/。这与我相信的distutils有关。