Python 分包导入 "no module named x"
Python subpackage import "no module named x"
我正在尝试构建具有以下结构的包,
- __init__.py
- a.py
- 分包
- __init__.py
- b.py
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
package
的 parent 目录需要在要搜索的目录列表 sys.path
中以解析导入。这可以通过在调用任何程序时将该目录作为当前工作目录来实现 运行 或将目录添加到 PYTHONPATH
环境变量或在运行前修改 sys.path
进口。
那么 a.py
应该是:
from package.subpackage.b import classX
或
from .subpackage.b import classX
我正在尝试构建具有以下结构的包,
- __init__.py
- a.py
- 分包
- __init__.py
- b.py
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
package
的 parent 目录需要在要搜索的目录列表 sys.path
中以解析导入。这可以通过在调用任何程序时将该目录作为当前工作目录来实现 运行 或将目录添加到 PYTHONPATH
环境变量或在运行前修改 sys.path
进口。
那么 a.py
应该是:
from package.subpackage.b import classX
或
from .subpackage.b import classX