Список літератури

Оновлено: 28.04.2023

Механізм імпорту значно розвинувся з перших днів Python. Оригінальна специфікація пакетів все ще доступна для читання, хоча деякі деталі змінилися з моменту написання цього документа.

Початкова специфікація для sys.meta_path була PEP 302 з подальшим розширенням у PEP 420.

PEP 420 представлено пакети простору імен для Python 3.3. PEP 420 також представив протокол find_loader() як альтернативу find_module().

PEP 366 описує додавання атрибута __package__ для явного відносного імпорту в основні модулі.

PEP 328 ввів абсолютний і явний відносний імпорт і спочатку запропонував __name__ для семантики PEP 366 згодом вказав би для __package__.

PEP 338 визначає модулі виконання як скрипти.

PEP 451 додає інкапсуляцію стану імпорту кожного модуля в специфікаційні об’єкти. Це також перекладає більшість шаблонних обов’язків вантажників назад на імпортну техніку. Ці зміни дозволяють припинити підтримку кількох API у системі імпорту, а також додати нові методи до засобів пошуку та завантаження.

Виноски

1 Див. types.ModuleType. 2 Реалізація importlib уникає безпосереднього використання значення, що повертається. Натомість він отримує об’єкт module, шукаючи ім’я модуля в sys.modules. Непрямим наслідком цього є те, що імпортований модуль може замінити себе в sys.modules. Це специфічна поведінка реалізації, яка не гарантовано працюватиме в інших реалізаціях Python. 3 У застарілому коді можна знайти екземпляри imp.NullImporter в sys.path_importer_cache. Рекомендується змінити код, щоб замість нього використовувати None. Додаткову інформацію див. у Перенесення коду Python.