Blender:属性错误:“_RestrictContext”对象没有属性“场景”

Jún*_*ior 4 python blender

运行我的脚本时,我收到此错误:

AttributeError:“_RestrictContext”对象没有属性“scene”

我正在尝试创建一个优化脚本:

bl_info = {
    "name": "Empic Stone",
    "author": "Null",
    "version": (0, 0, 1),
    "blender": (2, 79, 0),
    "location": "VIEW3D > ADD > Mesh",
    "description": "Empic Stone",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Add Mesh"
}

# Imports
import bpy

# Mesh - Create Cubic
bpy.ops.mesh.primitive_cube_add(location=(0.00, 0.00, 1.00))

def draw_item(self, context):
     self.layout.operator_context = 'INVOKE_DEFAULT'
     self.layout.operator(EpicStone.bl_idname, text="Epic Stone", icon="PLUGIN")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_mesh_add.append(draw_item)

def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.INFO_MT_mesh_add.remove(draw_item)

if __name__ == '__main__':
     register()
Run Code Online (Sandbox Code Playgroud)

sch*_*tte 5

指定此脚本适用于搅拌机可能会对人们有所帮助。我曾经使用过它,这是我认识它的唯一原因。无论如何,通常会发生这种错误,因为 Blender 限制对 bpy.context 和 bpy.data 的访问。这是来自文档

这样做是因为无法保证注册插件时加载的数据将处于活动状态,甚至无法保证在用户访问插件定义的运算符时存在。如果您看到这样的异常,则需要更新插件以在执行期间而不是注册时访问上下文:

现在,请点击上面的链接并遵循他们的代码,而不是“重新发明轮子”。

  • 也许您可以建议使用您使用的代码对我针对您的特定案例的答案进行编辑。这会更好地结束问题。 (3认同)