在开始之前,我只想澄清一下,对于python和编程来说,这是一个新手。我仍然无法编写课程,也无法理解面向对象的编程。
我目前正在使用python为maya编写工具。
问题是我为我的脚本编写了一个主UI,一切运行正常。但是,每次我更新我的UI时,我都不想复制/粘贴我的脚本,所以我写了另一个脚本来调用我的主UI。
import maya.cmds as mc ;
import sys ;
mp = "C:/Users/Administrator/Desktop/script/birdScript20170707" ;
if not mp in sys.path :
sys.path.append ( mp ) ;
import library.mainUI as mui ;
mui.birdMainUI () ;
这是我的主要用户界面:
import sys ;
import os ;
import maya.cmds as mc ;
mp = "C:/Users/Administrator/Desktop/script/testPackage" ;
if not mp in sys.path :
sys.path.append ( mp ) ;
import library.mayaLibrary as mlb ;
def printSelfPath( ) :
import general.printSelfPath as psp ;
reload ( psp ) ;
psp.printPath ( ) ;
###############
''' MAIN UI '''
###############
def birdMainUI ( ) :
# check if window exists
if mc.window ( 'birdMainUI' , exists = True ) :
mc.deleteUI ( 'birdMainUI' ) ;
# create window
window = mc.window ( 'birdMainUI', title = "birdMainUI v0.0", width = 200,
mnb = False , mxb = False , sizeable = True , rtf = True ) ;
general = mc.rowColumnLayout ( nc = 1 , cw = ( 1 , 200 ) ) ;
mc.button ( 'print self path' , c = 'printSelfPath( )' ) ;
mc.setParent( '..' ) ;
mc.showWindow ( window ) ;
#birdMainUI () ;
这是主UI使用的功能:
import os ;
import sys ;
import maya.cmds as mc ;
import maya.mel as ml ;
def printPath ( *args ) :
path = ml.eval ( "file -q -sn" ) ;
print ( path ) ;
用户界面出现了但是当我点击我的用户界面按钮时出现了这个错误:
# Error: name 'printSelfPath' is not defined
# Traceback (most recent call last):
# File "<maya console>", line 1, in <module>
# NameError: name 'printSelfPath' is not defined #
我不知道发生了什么事。这是我的文件结构:
如果有人有兴趣,这是包裹: https://drive.google.com/file/d/0B9acOuH0SmXsSk9aX0x6Nl9KbTQ/view?usp=sharing
谢谢。