У меня есть проект со следующей структурой:
project/
driver.py
lib/
__init__.py
core/
util.py
common.py
__init__.py
# project/driver.py
import lib.core.common as abc
pass
# project/lib/core/__init__.py
from .util import Worker
# project/lib/core/util.py
import lib.core.common as abc
class Worker:
pass
# project/lib/core/common.py
def stuff():
pass
Теперь, когда я запускаю python3 driver.py
(из каталога проекта), я получаю следующую ошибку:
Traceback (most recent call last):
File "driver.py", line 1, in <module>
import lib.core.common as abc
File "/home/user/project/lib/core/__init__.py", line 1, in <module>
from .util import Worker
File "/home/user/project/lib/core/util.py", line 1, in <module>
import lib.core.common as abc
AttributeError: module 'lib' has no attribute 'core'
Это происходит только при выполнении обоих условий:
- Когда я выполняю
import lib.core.common as abc
вместо import lib.core.common
. - Когда
project/lib/core/__init__.py
содержит from .util import Worker
import.
Дело в том, что я хотел бы сохранить форму import lib.core.common as abc
import.
Может кто-нибудь объяснить, что здесь происходит, пожалуйста?