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