Ошибка импорта, попытка относительного импорта с неизвестным родительским пакетом
У меня следующая структура проекта, в файле "main.py" я создаю экземпляр класса который находится в другой папке и был импортирован в "main.py" при помощи from ...Poker.Game.class_Game import Game, но при попытке запустить "main.py" выбрасывает ошибку
ImportError: attempted relative import with no known parent package
что делать?
Ответы (2 шт):
Судя по скриншоту, вы находитесь в одной папке, и весь путь прописывать не надо:
from .class_Game import Game
В целом, относительный импорт работает только когда вы запускаете код не как отдельный скрипт (условно, python main.py), а как модуль из пакета (python -m package.main). Судя по ошибке, вы запускаете именно как отдельный скрипт.
Чтобы было доступно для импорта все, что есть в пакете Pocker, через его имя (абсолютный импорт) или через точки (относительный внутри этого пакета), то нужно запускать не как отдельный скрипт main.py, а из внешней директории, где лежит Pocker, через python -m Pocker.Game.main.
Импорт вместо from ...Poker.Game.class_Game import Game делать как from Poker.Game.class_Game import Game (абсолютный импорт) или from .class_Game import Game (относительный). Какой-то сложный относительный импорт тут не нужен, т.к. main.py и class_Game.py находятся в одном и том же пакете.
