Python ищет модули в следующем порядке:
sys.path.PYTHONPATH: Затем Python просматривает каталоги, указанные в переменной окружения PYTHONPATH. Это список путей, разделенных системным разделителем (например, двоеточием на Unix-подобных системах или точкой с запятой на Windows).site-packages..pth файлы: Python также может использовать .pth файлы, расположенные в каталогах из sys.path. Эти файлы содержат дополнительные пути, которые будут добавлены к sys.path при запуске Python.Порядок каталогов, в которых Python ищет модули, хранится в списке sys.path.
Пример просмотра sys.path:
python
Когда модуль найден, его код загружается и выполняется, а затем он становится доступен по имени, указанному в инструкции import. Если модуль не найден ни в одном из этих мест, возбуждается исключение ModuleNotFoundError. До Python 3.6 это исключение называлось ImportError.