Python 分包导入 "no module named x"

Python subpackage import "no module named x"

我正在尝试构建具有以下结构的包,

a.py 文件包含来自 b.py 的 class,假设是“classX”。 因此,a.py 在文件开头有以下行,

from subpackage.b import classX

问题是,当我尝试从外部使用整个包时,出现错误“没有名为 'b' 的模块”。

我该如何解决这个问题?

你的目录结构应该是

package (choose whatever name you want for the high-level package name)
    __init__.py
    a.py
    subpackage
        __init__.py
        b.py

packageparent 目录需要在要搜索的目录列表 sys.path 中以解析导入。这可以通过在调用任何程序时将该目录作为当前工作目录来实现 运行 或将目录添加到 PYTHONPATH 环境变量或在运行前修改 sys.path进口。

那么 a.py 应该是:

from package.subpackage.b import classX

from .subpackage.b import classX