Как Python ищет модули при импорте ?
Спросят с вероятностью 3%
Процесс поиска и загрузки модулей при импорте осуществляется следующим образом:
1️⃣Поиск в текущем каталоге: Сначала ищет модуль в текущем каталоге, из которого запускается скрипт.
2️⃣Поиск в каталоге стандартных библиотек: Если модуль не найден в текущем каталоге, Python проверяет каталоги, указанные в переменной окружения
3️⃣Поиск в установленных пакетах: Если модуль не найден в
Этот процесс поиска управляется списком путей, который хранится в переменной
Пример работы с sys.path:
Вывод покажет все пути, где Python будет искать модули. Мы можем вручную добавить путь к этому списку, если хотим, чтобы Python искал модули в дополнительном месте:
Пример импорта модуля:
Если
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых
Спросят с вероятностью 3%
Процесс поиска и загрузки модулей при импорте осуществляется следующим образом:
1️⃣Поиск в текущем каталоге: Сначала ищет модуль в текущем каталоге, из которого запускается скрипт.
2️⃣Поиск в каталоге стандартных библиотек: Если модуль не найден в текущем каталоге, Python проверяет каталоги, указанные в переменной окружения
PYTHONPATH
, если такая переменная установлена.3️⃣Поиск в установленных пакетах: Если модуль не найден в
PYTHONPATH
, проверяет стандартные каталоги, где установлены модули и библиотеки Python (например, lib/site-packages
на Windows или /usr/local/lib/pythonX.X/dist-packages
на Unix-подобных системах).Этот процесс поиска управляется списком путей, который хранится в переменной
sys.path
. Порядок элементов в sys.path
определяет порядок поиска модулей.Пример работы с sys.path:
import sys
print(sys.path)
Вывод покажет все пути, где Python будет искать модули. Мы можем вручную добавить путь к этому списку, если хотим, чтобы Python искал модули в дополнительном месте:
import sys
sys.path.append('/path/to/my/modules')
Пример импорта модуля:
# Файл my_module.py в текущем каталоге
def hello():
print("Hello, world!")
# Файл main.py в том же каталоге
import my_module
my_module.hello() # Выведет: Hello, world!
Если
my_module.py
не будет найден в текущем каталоге, Python начнет проверять другие пути в sys.path
в указанном порядке, пока не найдет нужный модуль или не завершится с ошибкой ModuleNotFoundError
.👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых