У меня есть пакет в моем PYTHONPATH, который выглядит примерно так:
package/
__init__.py
module.py
print 'Loading module'
Если я запускаю Python из package /
каталог (или запись другого модуля в этом каталоге) и введите
import module
, он загрузит module.py и распечатает «Загрузка модуля», как ожидалось. Однако, если я затем наберу
from package import module
, он загрузит модуль .py и снова печатает «Модуль загрузки» , чего я не ожидал. Какое объяснение этому?
Примечание: я думаю, что технически понимаю, почему Python делает это, потому что sys.modules ключ для модуля импорта
- это просто «модуль»
, но для из модуля импорта пакетов
это «package.module»
. я хочу знать, почему здесь другой ключ - почему путь к файлу не используется в качестве ключа, чтобы Python делал то, что здесь ожидается?