【发布时间】:2017-10-27 20:57:40
【问题描述】:
对于以下情况,我在相对导入方面遇到了一些问题。
我有一个包含两个模块目录的包,我想将dir_b 中的一个模块导入dir_a 中的一个模块。
这是我的包结构示例:
$ tree
.
├── builder
│ ├── build_moto.py
│ └── __init__.py
├── __init__.py
└── parts
├── car.py
├── __init__.py
├── moto.py
└── truck.py
我正在尝试使用相对导入在 build_moto 中导入 moto,如下所示:
$ cat builder/build_moto.py
#!/usr/bin/python3
from .parts import moto
...但是当我执行build_moto.py 时,它会产生以下错误:
$ python3 builder/build_moto.py
Traceback (most recent call last):
File "builder/build_moto.py", line 3, in <module>
from .parts import moto
SystemError: Parent module '' not loaded, cannot perform relative import
我想了解:
- 为什么此配置不起作用?
- 必须做什么才能具体针对这种情况执行相对导入?
【问题讨论】:
标签: python python-3.x relative-import