Относительный импорт в миллиардный разPython

Программы на Python
Anonymous
Относительный импорт в миллиардный раз

Сообщение Anonymous »


Я был здесь:
[*]PEP 328 – Импорт: многострочный и абсолютный/относительный [*]Модули, пакеты [*]Пакеты Python: относительный импорт [*]Пример кода относительного импорта Python не работает [*]Относительный импорт в Python 2.5 [*]Относительный импорт в Python [*]Python: отключение относительного импорта
и множество URL-адресов, которые я не копировал, некоторые на SO, некоторые на других сайтах, когда я думал, что смогу быстро найти решение.

Вечно возникающий вопрос: как мне решить проблему с сообщением «Попытка относительного импорта не в пакете»?

Ошибка импорта: попытка относительного импорта без известного родительского пакета

Я создал точную копию пакета на pep-0328:

пакет/ __init__.py подпакет1/ __init__.py модульX.py модульY.py субпакет2/ __init__.py модульZ.py модульA.py Импорт был выполнен из консоли.

Я создал функции с именами спам и яйца в соответствующих модулях. Естественно, это не сработало. Ответ, очевидно, находится в четвертом URL-адресе, который я перечислил, но для меня это все выпускники. На одном из посещенных мной URL-адресов был такой ответ:

Относительный импорт использует атрибут имени модуля для определения положения этого модуля в иерархии пакетов. Если имя модуля не содержит никакой информации о пакете (например, для него установлено значение «main»), то относительный импорт разрешается так, как если бы модуль был модулем верхнего уровня, независимо от того, где он фактически находится в файловой системе. Приведенный выше ответ выглядит многообещающе, но для меня это всего лишь иероглифы. Как мне сделать так, чтобы Python не возвращал мне «Попытка относительного импорта не в пакете»? У него есть ответ, который, предположительно, включает -m.

Почему Python выдает такое сообщение об ошибке? Что значит «без упаковки»? Почему и как вы определяете «пакет»?

Вернуться в «Python»