0

我的目录结构是这样的:

example1(folder)
    - util.pyd(file)
    - high.pyd(file)
example2(folder)
    -main_file.py(file)

这里,util.pyd 和 high.pyd 文件在 cython 中。

此外,util.pyd 是 high.pyd 的父级。

这意味着它使用 util.pyd 类作为其类的对象。然后 main_file.py 从 util.pyd 和 high.pyd 中导入类。

我面临的问题是:

在 main_file.py 中,从 Util.pyd 中正确导入了 class,但是从 high.pyd 中导入 class,却找不到 util。

4

1 回答 1

0

以下最小的完整示例对我有用:

示例 2/main_file.py

from example1 import high

示例 1/util.pyx

class U:
    pass

示例 1/high.pyx

from . import util

class C(util.U):
    pass

cythonize -i util.pyx我通过切换到目录 example1 并执行和编译 util.pyx 和 high.pyxcythonize -i high.pyx

从包含“example1”和“example”的目录中运行python3 -m example2.main_file(这是将子模块作为脚本运行的适当方式)。


如果这些信息不足以让您的代码正常工作,我建议您编辑您的问题以准确显示您所做的事情。

于 2018-04-15T16:05:28.013 回答