Python 启动maya时自定义工具架脚本未运行-错误

Python 启动maya时自定义工具架脚本未运行-错误,python,maya,Python,Maya,我想在Maya 2018中启动时创建自定义工具架。我正在调用一个脚本来在userSetup.py文件中构建工具架。如果在启动后在脚本编辑器中运行,脚本将创建工具架,但在启动时调用时会抛出错误 #userSetup.py #----- import maya.cmds as cmds import sys sys.path.append('/Users/alfredwinters/Desktop/python/scripts/') import lighting_tools_shelf cmds.

我想在Maya 2018中启动时创建自定义工具架。我正在调用一个脚本来在userSetup.py文件中构建工具架。如果在启动后在脚本编辑器中运行,脚本将创建工具架,但在启动时调用时会抛出错误

#userSetup.py
#-----
import maya.cmds as cmds
import sys
sys.path.append('/Users/alfredwinters/Desktop/python/scripts/')
import lighting_tools_shelf
cmds.evalDeferred("lighting_tools_shelf")

#lighting_tools_shelf.py
#----
import maya.cmds as cmds
cmds.shelfLayout("lighting_shelf", p="ShelfLayout")
这是我在启动时调用脚本时遇到的错误。

无法执行userSetup.py

回溯(最近一次呼叫最后一次):

文件“/Users/alfredwinets/Library/Preferences/Autodesk/maya/2018/scripts/userSetup.py”,第8行,在 导入照明工具工具工具架

文件“/Users/alfredwinets/Desktop/python/scripts/lighting\u tools\u shelf.py”,第19行,在自定义工具架中 cmds.shelfLayout(名称,p=“shelfLayout”)


RuntimeError:shelfLayout:找不到对象“shelfLayout”。

因为调用
cmds.shelfLayout(name,p=“shelfLayout”)

它只是说,ShelfLayout对象在给定上下文中不可用。 ShelfLayout表示包含所有Maya工具架的主布局。但它不应该按原样使用。你应该从全局变量中得到它

例如:

import maya.mel as mel
main_shelf = mel.eval('$tempMelVar=$gShelfTopLevel')

# Now main_shelf holds complete path the the layout
# Now you can use it as parent for other shelf layouts
cmds.shelfLayout(name, p=main_shelf)
希望这能解决你的问题。 谢谢

import maya.mel as mel
main_shelf = mel.eval('$tempMelVar=$gShelfTopLevel')

# Now main_shelf holds complete path the the layout
# Now you can use it as parent for other shelf layouts
cmds.shelfLayout(name, p=main_shelf)