將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文件和初始化腳本文件一起復制分發,調用腳本的時候直接調用初始化腳本文件,就可以正常使用