Относительный импорт в миллиардный раз
Я был здесь:
http://www.python.org/dev/peps/pep-0328/http://docs.python.org/2/tutorial/modules.html#packagesПакеты Python: относительный импортПример кода относительного импорта Python не работаетОкончательный ответ на относительный импорт PythonОтносительный импорт в PythonPython: отключение относительного импортаи множество URL-адресов, которые я не копировал, некоторые на SO, некоторые на других сайтах, когда я думал, что быстро найду решение.
Постоянно повторяющийся вопрос заключается в следующем: в Windows 7, 32-битном Python 2.7.3, как мне решить это сообщение «Попытка относительного импорта в не пакет»? Я построил точную копию пакета на pep-0328:
package/
__init__.py
subpackage1/
__init__.py
moduleX.py
moduleY.py
subpackage2/
__init__.py
moduleZ.py
moduleA.py
Я сделал функции с именем спам и яйца в соответствующих модулях. Естественно, это не сработало. Ответ, по-видимому, находится в 4-м URL-адресе, который я перечислил, но это все мои выпускники. Был такой ответ на одном из URL, которые я посетил:
Относительный импорт использует атрибут имени модуля, чтобы определить позицию этого модуля в иерархии пакетов. Если имя модуля не содержит никакой информации о пакете (например, для него установлено значение «main»), то относительный импорт разрешается так, как если бы модуль был модулем верхнего уровня, независимо от того, где этот модуль фактически расположен в файловой системе.
Приведенный выше ответ выглядит многообещающе, но для меня это все иероглифы. Итак, мой вопрос, как сделать так, чтобы Python не возвращал мне «Попытка относительного импорта в неупакованном виде»? есть ответ, который включает в себя -m, предположительно.
Может кто-нибудь сказать мне, почему Python выдает это сообщение об ошибке,Что это означает не-пакет!, почему и как вы определяете «пакет», иточный ответ, изложенный в терминах, достаточно простых для понимания детским садом.
Изменить: импорт был сделан из консоли.