При старте Blender все активные аддоны загружаются последовательно, один за другим. Какой из аддонов будет загружен раньше, определяется его порядковым номером в списке bpy.context.preferences.addons.
Этот список хранится в общем файле с пользовательскими настройками userpref.blend, который хранится в директории пользователя на компьютере:
1 |
.../_USER_/AppData/Roaming/Blender Foundation/Blender/3.4/config/userpref.blend |
Посмотреть список активных аддонов можно пробежав по списку bpy.context.preferences.addons:
1 2 3 4 5 6 7 8 9 10 |
for addon in bpy.context.preferences.addons: print(addon) # <bpy_struct, Addon("io_anim_bvh") at 0x000001F2285130A8> io_anim_bvh # <bpy_struct, Addon("io_curve_svg") at 0x000001F228513048> io_curve_svg # <bpy_struct, Addon("io_mesh_ply") at 0x000001F228512FE8> io_mesh_ply # ... # <bpy_struct, Addon("node_wrangler") at 0x000001F228512C88> node_wrangler # <bpy_struct, Addon("print_to_py_console") at 0x000001F228512BC8> print_to_py_console # <bpy_struct, Addon("area_switcher") at 0x000001F228512B68> area_switcher |
Аддоны загружаются в систему при запуске Blender в порядке этого списка.
Каждый раз, когда аддон активируется, указатель на него перемещается в конец списка.
В этом легко убедиться, дезактивировав любой аддон и снова его активировав, например Node Wrangler, который в примере выше расположен в списке третьим с конца.
Ели теперь еще раз вывести список аддонов:
1 2 3 4 5 6 7 8 |
for addon in bpy.context.preferences.addons: print(addon, addon.module) # <bpy_struct, Addon("io_anim_bvh") at 0x000001F2285130A8> io_anim_bvh ... # <bpy_struct, Addon("print_to_py_console") at 0x000001F228512BC8> print_to_py_console # <bpy_struct, Addon("area_switcher") at 0x000001F228512B68> area_switcher # <bpy_struct, Addon("node_wrangler") at 0x000001F22856B528> node_wrangler |
Мы увидим, что аддон Node Wrangler переместился в конец списка.
Если после этого пользователь сохраняет настройки, нажатием на кнопку Save Preferences (или автоматически, если отмечен нужный чекбокс в настройках), этот аддон при последующих запусках Blender будет загружаться самым последним.