Middle
45
questionbank

Как Python производит поиск модулей при их импорте?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Python ищет модули в следующем порядке:

  1. Текущий каталог исполняемого скрипта: Сначала Python ищет модуль в каталоге, где находится выполняемый скрипт. Это первая запись в sys.path.
  2. Каталоги в переменной окружения PYTHONPATH: Затем Python просматривает каталоги, указанные в переменной окружения PYTHONPATH. Это список путей, разделенных системным разделителем (например, двоеточием на Unix-подобных системах или точкой с запятой на Windows).
  3. Стандартные каталоги установки Python: Python ищет в стандартных каталогах, где устанавливаются его библиотеки. Эти пути определяются при сборке Python и обычно включают пути к каталогу site-packages.
  4. .pth файлы: Python также может использовать .pth файлы, расположенные в каталогах из sys.path. Эти файлы содержат дополнительные пути, которые будут добавлены к sys.path при запуске Python.

Порядок каталогов, в которых Python ищет модули, хранится в списке sys.path.

Пример просмотра sys.path:

python

Когда модуль найден, его код загружается и выполняется, а затем он становится доступен по имени, указанному в инструкции import. Если модуль не найден ни в одном из этих мест, возбуждается исключение ModuleNotFoundError. До Python 3.6 это исключение называлось ImportError.