将python编译成pyc二进制文件,方便脚本的分发,也可防止一般人随意修改,此处使用maya自带的python进行编译,防止不能正常运行
准备
将脚本分为两个文件,一个为Core文件,一个为脚本初始化相关文件
原因:如果直接将源文件编译成pyc文件,maya就无法识别,提示没有插件等错误信息
脚本初始化文件
from Core import *
class MyPlugin(OpenMaya.MPxCommand):
def __init__(self):
super(MyPlugin, self).__init__()
def doIt(self, args):
print(u'doIt')
#code
#UI.show()
### plugin initialization
def cmdCreator():
''' Creates an instance of the scripted command. '''
return MyPlugin()
def initializePlugin(mobject):
''' Initializes the plug-in.'''
mplugin = OpenMaya.MFnPlugin(mobject)
try:
mplugin.registerCommand(kPluginCmdName, cmdCreator)
except:
sys.stderr.write("Failed to register command: %s\n" % kPluginCmdName)
def uninitializePlugin(mobject):
''' Uninitializes the plug-in '''
mplugin = OpenMaya.MFnPlugin(mobject)
try:
mplugin.deregisterCommand(kPluginCmdName)
except:
sys.stderr.write("Failed to unregister command: %s\n" % kPluginCmdName)
pass
pass
Core文件
此文件中就是我们的代码
编译文件
调用C:\Program Files\Autodesk\Maya2019\bin\mayapy.exe运行如下文件
import py_compile
py_compile.compile("Core.py")
最后
编译后生成Core.pyc文件,把Core.pyc文件和初始化脚本文件一起复制分发,调用脚本的时候直接调用初始化脚本文件,就可以正常使用