Python Glossary English

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

pkgutil.get_loader()

удалено

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

Синтаксис

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

get_loader принимала имя или уже импортированный модуль и отдавала его загрузчик — так, например, читали исходник модуля через loader.get_source(). Её убрали вместе с find_loader: загрузчик теперь часть спецификации модуля. Как переписать: для имени — importlib.util.find_spec(name).loader; для импортированного модуля — module.__spec__.loader; чтобы прочитать исходник, вызовите у загрузчика get_source(name) так же, как раньше.

Примеры

# Python 3.14+
import pkgutil
try:
    pkgutil.get_loader
except AttributeError as e:
    print(type(e).__name__)  # → AttributeError
# Python 3.14+
import importlib.util
import json
loader = json.__spec__.loader
print(loader is importlib.util.find_spec('json').loader)  # → True
print('JSONDecoder' in loader.get_source('json'))  # → True
import json
import pkgutil
loader = pkgutil.get_loader(json)
print(type(loader).__name__)  # → SourceFileLoader
print('JSONDecoder' in loader.get_source('json'))  # → True

См. также

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

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