По порядку Middle Модули, пакеты и окружения обновлено

Где Python ищет модуль

Вопрос

Расставьте места поиска при import name для модуля верхнего уровня в порядке проверки.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Встроенные модули интерпретатора
  2. 2
    Каталог запускаемого скрипта (первый элемент sys.path)
  3. 3
    Стандартная библиотека и site-packages
  4. 4
    Каталоги из PYTHONPATH
  5. 5
    Кеш загруженных модулей sys.modules
Показать ответ и разбор

Коротко

Сначала кеш, затем встроенные (и замороженные) модули, затем sys.path по порядку. Поэтому свой random.py рядом со скриптом перекрывает стандартный модуль, а sys.py не перекроет встроенный sys.

Правильный порядок

  1. 1
    Кеш загруженных модулей sys.modules
  2. 2
    Встроенные модули интерпретатора
  3. 3
    Каталог запускаемого скрипта (первый элемент sys.path)
  4. 4
    Каталоги из PYTHONPATH
  5. 5
    Стандартная библиотека и site-packages

Разбор

Сначала кеш, затем встроенные (и замороженные) модули, затем sys.path по порядку. Поэтому свой random.py рядом со скриптом перекрывает стандартный модуль, а sys.py не перекроет встроенный sys.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме