Я играл в систему импорта Python, чтобы лучше понять, как это работает, и я столкнулся с другой проблемой. У меня есть следующая структура
pkg/
__init__.py
c.py
d.py
subpkg/
__init__.py
a.py
b.py
Внутри a.py
У меня есть следующий код:
from . import b
from .. import d
И внутри c.py
у меня есть следующее:
import subpkg.a
Теперь я получаю следующую ошибку:
ValueError: попытка относительного импорта за пределы пакета верхнего уровня
Но почему? Как я могу это решить? Я запускаю c.py
из IDLE, а pkg
следует рассматривать как пакет, так как он имеет файл __init__.py
.
Первый импорт работает отлично, но это не работает:
from .. import d
Потому что я пытаюсь импортировать что-то из родительского пакета, но, по-видимому, я не могу, по какой-то странной причине.