1
嘿,我想了解在Maya中使用Python導入和重新加載腳本的過程。Maya Python調用modul類函數
我有下面的代碼拋出以下錯誤:
# NameError: name 'MyClass' is not defined #
它創建的窗口,但是當我按下按鈕它給我上述錯誤。如果有人能幫助我在這裏失去的東西,那會很棒。
import maya.cmds as cmds
from functools import partial
class MyClass():
@classmethod
def createWindow(cls):
windowID = 'window'
if cmds.window(windowID, exists = True):
cmds.deleteUI('window')
window = cmds.window(windowID, title="Blast", iconName='Blast', widthHeight=(400, 200))
cmds.frameLayout(label='')
cmds.button(label='Playblast' ,command= 'MyClass.createPlayblast()')
cmds.showWindow(window)
@classmethod
def createPlayblast(cls):
cmds.playblast(f= "playblast", fmt= "image")
print "hallo"
MyClass.createWindow()
我打電話我MODUL這樣的:
# call loadTest
import sys
Dir = 'S:/people/Jan-Philipp/python_scripts'
if Dir not in sys.path:
sys.path.append(Dir)
try: reload(loadTest)
except: from loadTest import MyClass
loadTest.MyClass()
乾杯,希望大家有一個愉快的一天!
在這種情況下,在你的文章中發現這行錯了? cmds.button(label ='Playblast',command ='MyClass.createPlayblast()') 會是這樣的:或? cmds.button(label ='Playblast',command ='createPlayblast()') –
是的,這是正確的。 – theodox
另外,不要使用回調的字符串引用版本 - 直接傳遞python函數。字符串版本在偵聽器和生產代碼中的工作方式不同,因此它們會產生大量的錯誤。請參閱https://theodox.github.io/2014/maya_callbacks_cheat_sheet – theodox