- PEP 328 – Импорт: многострочный и абсолютный/относительный
- Модули, пакеты
- Пакеты Python: относительный импорт
- Пример кода относительного импорта Python делает это не работает
- Относительный импорт в Python 2.5
- Относительный импорт в Python
- Python: отключение относительного импорта
Вечно повторяющийся вопрос: : как мне решить эту проблему «Попытка относительного импорта в сообщение «не пакет»?
Ошибка импорта: попытка относительного импорта без известного родительского пакета
Я создал точную копию пакета на pep-0328:
Код: Выделить всё
package/
__init__.py
subpackage1/
__init__.py
moduleX.py
moduleY.py
subpackage2/
__init__.py
moduleZ.py
moduleA.py
Я создал функции с именами «спам» и «яйца» в соответствующих модулях. Естественно, это не сработало. Ответ, очевидно, находится в четвертом URL-адресе, который я перечислил, но для меня это все выпускники. На одном из посещенных мной URL-адресов был такой ответ:
Относительный импорт использует атрибут имени модуля для определения положения этого модуля в иерархии пакетов. Если имя модуля не содержит никакой информации о пакете (например, для него установлено значение «main»), то относительный импорт разрешается, как если бы модуль был модулем верхнего уровня, независимо от того, где он фактически находится в файловой системе.
Ответ выше выглядит многообещающе, но для меня это все иероглифы. Как мне сделать так, чтобы Python не возвращал мне «Попытка относительного импорта не в пакете»? Предположительно, у него есть ответ, который включает -m.
Почему Python выдает такое сообщение об ошибке? Что значит «без упаковки»? Почему и как вы определяете «пакет»?
Подробнее здесь: https://stackoverflow.com/questions/141 ... ionth-time