python - cython 路径难以编译 pyx pxd 文件的工作版本

标签 python cython setuptools

我在 cython 中得到了代表 2 个类的 3 个文件:

1. ../src/cython/class1.pyx
2. ../src/cython/class1.pxd
3. ../src/cython/class2.pyx

我想将 class1 中定义的类导入到 class2 中,以便能够对自定义类使用 cython 类型。

class2内部,如果我像这样导入Class1,我无法编译:

from src.cython.class1 cimport Class1

class2内部,如果我像下面一样导入Class1,我可以编译,但出现错误No module named 'src.cython.class1'执行时:

from class1 cimport Class1

我正在从 ../ 运行 setup.py

此问题被标记为可能与另一个截然不同的问题重复。我收到这些错误只是因为我错过了 cython 文件夹中的 __init__.py

最佳答案

目录结构应该是这样的:

  1. ../src/cython/class1.pyx
  2. ../src/cython/__init__.pxd
  3. ../src/cython/class1.pxd
  4. ../src/cython/class2.pyx

在class2.pyx中:

from class1 cimport Class1

setup.py 应该具有:

extensions = [Extension('my_package.cython.class1',
                        <..>
              ),
              Extension('my_package.cython.class2',
                        <..>,
              ),
]

“无模块”错误是因为目录名称与扩展名称不匹配,此外目录需要定义为包。

__init__.pxd 相当于 cimport__init__.py

关于python - cython 路径难以编译 pyx pxd 文件的工作版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50631966/

相关文章:

python - 如何在 Python 3 中使用 unicode 读取大文件

Cython 和交叉编译

python - Cython 和 Hadoopy 编译错误.. 有什么解决办法吗?

python - 默认安装,Python 中的 "optional"依赖项(setuptools)

python - 如何使用 scikit-learn 训练/升级非常大的数据集?

python - sklearn-线性回归 : could not convert string to float: '--'

python - 从源安装 setuptools "No module named numbers"错误

可自行下载的 Python Web 应用程序

python - 使用 get_form() 时 Django 管理员缺少添加/编辑按钮

Cython:LINK: fatal error LNK1181:无法打开输入文件