все 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Сообщить о неточности