import
всегда выглядит в следующем порядке :
- уже импортированных модулей
- хуки импорта
- файлов в расположениях в
sys.path
- встроенные модули
Если вы хотите импортировать модуль, который не будет найден ни одним из этих механизмов, но вы знаете имя файла, тогда вы можете использовать imp.load_source()
.Или, если вы хотите импортировать модуль, который был бы затенен более ранним механизмом импорта, например, если вы хотите импортировать foo
из каталога в sys.path
, но есть пользовательский хук импорта, который найдет свою собственную версию *Сначала 1020 *, затем вы можете использовать imp.load_source()
для этого тоже.По сути, это позволяет вам контролировать источник кода модуля так, как это делает import
.