По порядку Middle Модули, пакеты и окружения обновлено
Где Python ищет модуль
Вопрос
Расставьте места поиска при import name для модуля верхнего уровня в порядке проверки.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Встроенные модули интерпретатора
- 2Каталог запускаемого скрипта (первый элемент
sys.path) - 3Стандартная библиотека и
site-packages - 4Каталоги из
PYTHONPATH - 5Кеш загруженных модулей
sys.modules
Показать ответ и разбор
Коротко
Сначала кеш, затем встроенные (и замороженные) модули, затем sys.path по порядку. Поэтому свой random.py рядом со скриптом перекрывает стандартный модуль, а sys.py не перекроет встроенный sys.
Правильный порядок
- 1Кеш загруженных модулей
sys.modules - 2Встроенные модули интерпретатора
- 3Каталог запускаемого скрипта (первый элемент
sys.path) - 4Каталоги из
PYTHONPATH - 5Стандартная библиотека и
site-packages
Разбор
Сначала кеш, затем встроенные (и замороженные) модули, затем sys.path по порядку. Поэтому свой random.py рядом со скриптом перекрывает стандартный модуль, а sys.py не перекроет встроенный sys.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.