【发布时间】:2014-03-18 23:42:34
【问题描述】:
我一直在这里阅读,但我在网上找不到任何解决方案来解决我的问题..我认为我的缩进正确,但我仍然收到名称错误..有人可以帮助我吗? 这个脚本应该在 Maya 中运行一个新面板,这有点工作,但这个错误真的很烦人。
class PanelWindow( object ):
def __init__( self, name, title, namespace=__name__ ):
self.__name__ = name
self._title = title
self.instance = str(namespace) + '.' + self.__name__
if not pm.scriptedPanelType(self.__name__, q = True, ex = True):
pm.scriptedPanelType(self.__name__, u = True)
jobCmd = 'python(\\\"%s._setup()\\\")' % self.instance
job = "scriptJob -replacePrevious -parent \"%s\" -event \"SceneOpened\" \"%s\";" % ( self.__name__, jobCmd )
mel.eval(job)
pm.scriptedPanelType( self.__name__, e = True,
unique=True,
createCallback = 'python("%s._createCallback()")' % self.instance,
initCallback = 'python("%s._initCallback()" )' % self.instance,
addCallback = 'python("%s._addCallback()" )' % self.instance,
removeCallback = 'python("%s._removeCallback()")' % self.instance,
deleteCallback = 'python("%s._deleteCallback()")' % self.instance,
saveStateCallback = 'python("%s._deleteCallback()")' % self.instance
)
def _setup(self):
"""Command to be call for new scene"""
panelName = pm.sceneUIReplacement( getNextScriptedPanel=(self.__name__, self._title) )
if panelName == '':
try:
panelName = pm.scriptedPanel( mbv=1, unParent=True, type=self.__name__, label=self._title )
except:
pass
else:
try:
label = panel( self.__name__, query=True, label=True )
pm.scriptedPanel( self.__name__, edit=True, label=self._title )
except:
pass
def _addCallback(self):
"""Create UI and parent any editors."""
print 'ADD CALLBACK'
def show( self ):
mel.eval('tearOffPanel "%s" %s true;' % (self._title, self.__name__) )
global test
test = PanelWindow('myName', 'Light')
test.show()
# NameError: name '__main__' is not defined #
# Error: line 1: name '__main__' is not defined
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# NameError: name '__main__' is not defined #
【问题讨论】:
-
您的代码中没有
__main__。向我们展示导致此错误的实际代码 -
看起来你使用了一些非标准的 python 控制台(maya-console)......这可能是问题......我会检查他们的论坛
-
... 请发布一个 minimal 代码来显示此问题。你 99% 的代码在这里是无关紧要的。
-
@JoranBeasley,maya 有一个内置的脚本编辑器和 python 解释器。
__main__仍然必须在代码中的某个地方。 -
作为每个工作日都使用 Maya 的人,我向你保证不是。