Python Glossary English

все Python 3до 3.14Удалено из стандартной библиотекифункция

pkgutil.find_loader()

удалено

Находила загрузчик модуля по имени. Удалена в Python 3.14 — используйте importlib.util.find_spec().

Синтаксис

pkgutil.find_loader('json')  # до 3.14

find_loader('json') отвечала на вопрос «можно ли импортировать модуль и кто его загрузит», не выполняя импорт. Её убрали, когда импорт перешёл на спецификации модулей: загрузчик теперь лишь одно из полей спецификации. Как переписать: pkgutil.find_loader(name) меняется на importlib.util.find_spec(name); если нужен сам загрузчик — берите .loader у результата. Для отсутствующего модуля find_spec, как и раньше, возвращает None, так что проверка is None остаётся прежней.

Примеры

# Python 3.14+
import pkgutil
try:
    pkgutil.find_loader
except AttributeError as e:
    print(type(e).__name__)  # → AttributeError
# Python 3.14+
import importlib.util
spec = importlib.util.find_spec('json')
print(type(spec.loader).__name__)  # → SourceFileLoader
print(importlib.util.find_spec('no_such_module_xyz'))  # → None
import pkgutil
print(type(pkgutil.find_loader('json')).__name__)  # → SourceFileLoader
print(pkgutil.find_loader('no_such_module_xyz'))  # → None

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности