При запуске некоторых аддонов в Blender 4.4 пользователи стали сталкиваются с ошибкой: Could not create instance of _OPERATOR_ to call callback function ‘_function_’. Это связано с последними изменениями в Blender Python API для версии Blender 4.4.
Причина появления данной ошибки следующая:
В Blender 4.3 и более ранних версиях, если в коде аддона для каких-то целей переопределялась функция __init__, это переопределение не требовало указания параметров.
Разработчик аддона переопределял функцию __init__ и вызывал функцию __init__ родительского класса так:
|
1 2 3 4 5 6 7 8 |
class TEST_OT_op(bpy.types.Operator): bl_idname = 'test.op' bl_label = 'TEST OPERATOR' bl_options = {'REGISTER'} def __init__(self): super().__init__() # additional code |
Если запустить аддон с таким определением этой функции в Blender 4.4, выпадает ошибка:
RuntimeError: could not create instance of TEST_OT_op to call callback function ‘execute’
Начиная с версии 4.4 переопределение этой функции требует указания параметров.
Теперь переопределять функцию __init__ и вызывать ее родительский вариант нужно следующим образом:
|
1 2 3 4 5 6 7 8 |
class TEST_OT_op(bpy.types.Operator): bl_idname = 'test.op' bl_label = 'TEST OPERATOR' bl_options = {'REGISTER'} def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) # additional code |
При таком переопределении в ошибки Blender 4.4 не выпадает.
Для решения проблемы с такими аддонами необходим связаться с их разработчиками и указать на необходимость сделать такие изменения в коде, или сделать их самостоятельно, просто заменив строчки без указания параметров на строки с указанием параметров функции __init__.

.blend file on Patreon