Hey Ich möchte den Prozess des Importierens und Neuladen von Skripten mit Python in Maya verstehen.Maya Python Aufruf Modul Klasse Funktionen
Ich habe den folgenden Code, die folgenden Fehler Würfe:
# NameError: name 'MyClass' is not defined #
Es schafft das Fenster, aber wenn ich die Taste drücken, es gibt mir den Fehler oben. Wäre toll wenn mir jemand helfen könnte was ich hier vermisse.
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()
ich mein Modul wie das nenne:
# 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()
Cheers, hoffen, dass Sie alle haben einen schönen Tag!
Isent diese Zeile in Ihrem Beitrag falsch in diesem Fall? cmds.button (Label = 'Playblast', Befehl = 'MyClass.createPlayblast()') wäre etwas wie: oder? cmds.button (Label = 'Playblast', Befehl = 'createPlayblast()') –
Ja, das ist richtig. – theodox
Verwenden Sie auch nicht die String-Referenzversion der Callbacks - übergeben Sie die Python-Funktionen direkt. Die Zeichenfolgenversionen funktionieren im Listener und im Produktionscode anders, sodass sie viele Fehler erzeugen. Siehe https://theodox.github.io/2014/maya_callbacks_cheat_sheet – theodox