ImportError:没有名为util的模块

时间:2018-04-09 13:59:01

标签: python-3.x cython cythonize

我的目录结构如下:

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导入类,但是从high.pyd导入类,它无法找到util。

1 个答案:

答案 0 :(得分: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

我通过更改目录example1并执行cythonize -i util.pyxcythonize -i high.pyx

来编译util.pyx和high.pyx

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

如果这还不足以让您的代码正常工作,我建议您编辑问题以显示 您的所作所为。