Выбор ответа Junior Модули, пакеты и окружения обновлено
Свой файл перекрыл модуль стандартной библиотеки
Вопрос
В проекте есть файл random.py. Скрипт рядом делает import random и падает на random.randint. Почему?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Каталог скрипта первый в sys.path, взят свой random.py. Поиск идёт по sys.path по порядку, и каталог запускаемого скрипта стоит в начале.
Варианты ответа
- Модуль
randomудалён в Python 3.13, нуженsecrets - Стандартную библиотеку нельзя импортировать без
pip install randomнужно импортировать какfrom std import random- Каталог скрипта первый в
sys.path, взят свойrandom.pyправильный ответ
Разбор
Поиск идёт по sys.path по порядку, и каталог запускаемого скрипта стоит в начале. Свой файл с именем модуля стандартной библиотеки его перекрывает. Решение: переименовать файл и удалить __pycache__. Модуль random никуда не делся, стандартная библиотека ставится вместе с Python, а пространства имён std нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Относительный импорт при прямом запуске
Следующий вопрос
Как вы управляете зависимостями Python-проекта