4

我是 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.pxdinpath/to来促进这一点,但是当我尝试时cimport path.to.helpers,我得到

path/to/helpers.pxd not found

错误。我是否需要更改setup.py文件中的某些内容以允许cimport*.pxd文件中读取?

我发现的所有文档都没有说明这样做,我觉得我已经尝试了一切,但没有任何运气。想法?

4

2 回答 2

1

经过几个小时的撞击我终于解决了这个问题。事实证明,文件比文件*.pxd更挑剔。我不知道为什么。无论如何,只需将路径添加到我的文件即可解决问题。我的 for保持不变,但每当我使用需要访问的任何其他文件时,我都会确保将路径包含为,例如:path*.pyx*.pxdsetup.pypath/to/helpers.**.pyxpath.to.helperspath/to/helpersinclude-dir

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

于 2016-04-14T03:29:46.267 回答
0

尝试将 a 添加__init__.py到您的path/to/目录中。我相信这适用于 distutils。

于 2016-04-14T03:39:16.863 回答