El script Maya Python se compila en un archivo binario pyc

Compile python en un archivo binario pyc para facilitar la distribución de scripts y evitar que la gente común lo modifique a su antojo. Aquí, use el propio Python de Maya para compilar y evitar que no se ejecute normalmente.

Listo

Divida el script en dos archivos, uno es el archivo Core y el otro son los archivos relacionados con la inicialización del script

Motivo: si compila directamente el archivo de origen en un archivo pyc, Maya no podrá reconocerlo, lo que indica que no hay ningún complemento y otros mensajes de error.

Archivo de inicialización de secuencia de comandos

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

Archivo principal

Este archivo es nuestro código

Compilar archivo

Llame a C: \ Archivos de programa \ Autodesk \ Maya2019 \ bin \ mayapy.exe para ejecutar el siguiente archivo

import py_compile

py_compile.compile("Core.py")

Por fin

Genere el archivo Core.pyc después de la compilación, copie y distribuya el archivo Core.pyc y el archivo de secuencia de comandos de inicialización juntos, y llame directamente al archivo de secuencia de comandos de inicialización cuando se llame a la secuencia de comandos, y se puede utilizar normalmente

https://blog.csdn.net/shaynerain/article/details/106426953

Supongo que te gusta

Origin blog.csdn.net/shaynerain/article/details/106426953
Recomendado
Clasificación