图解importlib(python39)
2022-11-09 10:08:33 0 举报
python包加载背后涉及的类和流程
作者其他创作
大纲/内容
Finder
span style=\"font-size: inherit;\
ResourceReader
BuiltinImporter
+create_module=_imp.create_builtin+exec_module=_imp.exec_builtin+load_module(fullname)
PathEntryFinder
module_from_spec(spec)
__import__(name)
ModuleSpec
+ loader
InspectLoader
+exec_module(module)
ExecutionLoader
spec.loader.create_module(spec)
一般用户到这里结束
SourceFileLoader
FileFinder
+_loaders[]
递归加载
sys
+meta_path[]+path_hooks[]
_load_unlocked(spec)
PathFinder
_path_hooks(path)
MetaPathFinder
_gcd_import(name)
_load(spec)
ResourceLoader
ExtensionFileLoader
+create_module(spec)=_imp.create_dynamic+exec_module(module)=_imp.exec_dynamic
Loader
+create_module(module_spec)-load_module(name)<deprecated>
FileLoader
SourceLoader
+get_code(fullname)
_LoaderBasics
+exec_module(module)=exec(get_code())+load_module(fullname)
SourcelessFileLoader
yes
module
_load_module_shim(fullname)
no
spec.loader.load_module(name)orspec.loader.exec_module(module)
fullname insys.modules
一般用户从这里开始
FrozenImporter
+create_module=+exec_module=_imp.get_frozen_object+load_module(fullname)
0 条评论
下一页