1.利用maya.standalone来运行。

通过maya的单机执行,是需要设置环境变量:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

#
# 描述: 
#     运行这个程序将会启动一个Maya独立的python程序
#
# 使用方法:
#
#       设置MAYA_LOCATION环境变量到你的Maya安装路径并在Linux(Mac)的shell中执行:
#
#       $MAYA_LOCATION/bin/mayapy helloWorld.py
#
#       注意:你必须使用Python可执行文件,才能正常工作。不同的平台它的路径都不一样。
#       win系统的是:
#       
#       $MAYA_LOCATION/bin/mayapy.exe helloWorld.py

# 导入相关模块
import maya.standalone
import maya.OpenMaya as OpenMaya

import sys

def main( argv=None ):
    try:
        # 尝试启动Maya独立的python程序
        maya.standalone.initialize( name='python' )
    except:
        # 如果无法启动,输出错误信息
        sys.stderr.write( "Failed in initialize standalone application" )
        raise
    
    # 输出Hello world
    sys.stderr.write( "Hello world! (script output)\n" )
    # 执行print命令来输出Hello world
    OpenMaya.MGlobal().executeCommand( "print \"Hello world! (command script output)\\n\"" )
        
if __name__ == "__main__":
    main()

2.利用maya的载入安装插件方法:

使用方法: 
将helloWorldCmd.py放到 
win 
C:\Documents and Settings\你的用户名\My Documents\maya\plug-ins 

mac 
/Users/你的用户名/Library/Preferences/Autodesk/maya/plug-ins 

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

'''
Created on Oct 25, 2009

@author: schi
'''
# 使用方法:
# Mel:
# loadPlugin helloWorldCmd.py;
# spHelloWorld;
#
# ---------------------------------------
#
# python:
# import maya.cmds as cmds
# cmds.loadPlugin("helloWorldCmd.py")
# cmds.spHelloWorld()

# 导入相关模块
import sys
import maya.OpenMaya as om
import maya.OpenMayaMPx as ompx

# 定义命令的名称
kPluginCmdName = 'spHelloWorld'

# 命令
class SpHelloWorld( ompx.MPxCommand ):

    def __init__( self ):
        # 你可以像官方一样使用未绑定的方法,ompx.MPxCommand.__init__(self)
        # 我更倾向于super方法
        super( SpHelloWorld, self ).__init__()

    # 执行spHelloWorld时会调用这个方法
    def doIt( self, argList ):
        # 如果你对Hello World很反感,可以改成自己的代码
        print "Hello World!"

# Creator用于创建命令的一个实例
def cmdCreator():
    return ompx.asMpxPtr( SpHelloWorld() )

# 注册插件
def initializePlugin( mobject ):
    mplugin = ompx.MFnPlugin( mobject )
    try:
        mplugin.registerCommand( kPluginCmdName, cmdCreator )
    except:
        sys.stderr.write( '插件 %s 注册失败\n' % kPluginCmdName )
        raise

# 注销插件
def uninitializePlugin( mobject ):
    mplugin = ompx.MFnPlugin( mobject )
    try:
        mplugin.deregisterCommand( kPluginCmdName )
    except:
        sys.stderr.write( '插件 %s 注销失败\n' % kPluginCmdName )
        raise


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐