Код: Выделить всё
package:
package:
__init__.py
a:
__init__.py
a.py
b:
__init__.py
b.py
a
Код: Выделить всё
# package/package/a/__init__.py
from .a import A
Код: Выделить всё
# package/package/a/a.py
class A:
def __init__(self):
pass
Код: Выделить всё
# package/package/b/__init__.py
from .b import B
Код: Выделить всё
# package/package/b/b.py
from package.a.a import A
class B:
def __init__(self):
pass
Код: Выделить всё
ModuleNotFoundError: No module named 'package.a'
Код: Выделить всё
package:
package:
__init__.py
main.py
a:
__init__.py
a.py
b:
__init__.py
b.py
Код: Выделить всё
# package/package/main.py
import a
import b
Если Я меняю b.py на
Код: Выделить всё
# package/package/b/b.py
from ..a.a import A
class B:
def __init__(self):
pass
Код: Выделить всё
ValueError: attempted relative import beyond top-level package
Может кто-нибудь объяснить, почему я получаю эти ошибки? Я видел пару подобных сообщений, но они не решили мою проблему:
- Импорт подмодулей Python 3
- Подмодуль Python правильно импортируется в Python 3.7, но не в 3.6
Подробнее здесь: https://stackoverflow.com/questions/631 ... ubpackages
Мобильная версия