我是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?我发现的所有文档都没有说出这样的事情,我觉得我已经尝试过所有事情而没有任何运气。想法?
答案 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有关。