【发布时间】:2016-07-15 14:13:50
【问题描述】:
我正在做一个具有以下结构的项目:
project
├── config.py
└── modules
└── a.py
根据PEP 328 相对导入是可能的。
但是,当我在与 a.py 相同的目录中启动 Python(在 shell 中)并执行以下命令时:
from ..config import *
from ...project import *
我收到以下错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
SystemError: Parent module '' not loaded, cannot perform relative import
我知道不推荐import *,它仅用于测试(尝试导入配置)。
【问题讨论】:
-
哪一行导致错误?
-
命令是行。运行
from ..config import *或from ...project import *时出现错误。 -
我认为您需要在
project目录中创建一个(空的)__init__.py文件。 -
我在
project文件夹中添加了一个空的__init__.py并尝试执行导入,但它产生了同样的错误。除了project中的__init__.py文件之外,还尝试在modules中添加一个空的__init__.py,但仍然导致相同的错误。 -
好的,那么这可能与您尝试从 Python shell 执行此操作有关。而是尝试从
modules目录中的文件执行此操作。
标签: python python-3.x python-import relative-import