Представьте себе структуру каталогов:
/ a/ __init__.py b.py c.py c.py
Файл /a/b.py
выглядит как:
import c should_be_absolute = c
Все остальные файлы (, включая__init__
)пусты.
При запуске тестового скрипта (с использованием Python 2.7):
import a.b
print a.b.should_be_absolute
с PYTHONPATH=/
из пустого каталога (, поэтому ничего не добавляется к PYTHONPATH
из текущего каталога ), я получаю
где согласно PEP 328 и утверждению import <> is always absolute
я ожидал:
Вывод, как и ожидалось, когда я удаляю файл /a/c.py
.
Что мне не хватает? И если это правильное поведение -, как импортировать модуль c
изb
(вместоa.c
)?
Обновление:
Согласно списку рассылки python dev , это ошибка в документации. Импорт не абсолютный по умолчанию в python27.