[PYTHON] [maya] Wie eine maya userSetup.py funktioniert und ausgeführt wird

* Bitte seien Sie vorsichtig mit dem Artikel
Hier ist es der Inhalt der Untersuchung, herauszufinden, "wie es tatsächlich funktioniert" für die Funktionen und Operationen, die wie gewohnt verwendet werden.
Wenn wir den Mechanismus kennen, werden wir die Vor- und Nachteile erfassen, zukünftige Probleme vermeiden und ihn zu einer erweiterten Verwendungsmethode entwickeln.
Es ist nur ein Memo der persönlichen Umfrage. Bitte beachten Sie, dass es zu Fehlern und Missverständnissen kommen kann.

Auslöser für die Untersuchung

Vor kurzem (ab Juni 2020) gab es einige Virenberichte für Maya. Ich denke, es gibt viele Menschen, die betroffen sind. All dies folgt letztendlich dem App-Verhalten über die Datendatei. Das Skript, das beim Start ausgeführt wird, ist userSetup.py. Und userSetup.py wird als Methode zur Einstellung der normalen persönlichen / Produktionsumgebung verwendet, auch wenn es sich nicht um eine Virengeschichte handelt.

Bis jetzt habe ich mich oft auf die Seite konzentriert, die es als allgemeine Operation verwendet Da es eine große Sache ist, habe ich mich entschlossen zu untersuchen, wie userSetup.py funktioniert.

Ergebnis der Untersuchung

Früher habe ich es "irgendwie" als Black Box angesehen, aber es ist ein sehr einfacher Mechanismus.

sys.userSetup unter dem Pfadordner.Ich führe py mit einer Execfile aus.

ist. Das ist alles.

Wie es geschrieben steht

Die entsprechende .py-Datei finden Sie unten.

C:\Program Files\Autodesk\Maya2008\Python\Lib\site-packages\maya\app\startup\basic.py
~
C:\Program Files\Autodesk\Maya2020\Python\Lib\site-packages\maya\app\startup\basic.py

Wenn Sie die erforderlichen Teile extrahieren, ist dies wie folgt.

basic.py


def setupScriptPaths():
    # ....Kürzung....
    
    # Per-version prefs scripts dir (eg .../maya8.5/prefs/scripts)
    prefsDir = cmds.internalVar( userPrefDir=True )
    sys.path.append( os.path.join( prefsDir, 'scripts' ) )
    
    # Per-version scripts dir (eg .../maya8.5/scripts)
    scriptDir = cmds.internalVar( userScriptDir=True )
    sys.path.append( os.path.dirname(scriptDir) )
    
    # User application dir (eg .../maya/scripts)
    appDir = cmds.internalVar( userAppDir=True )
    sys.path.append( os.path.join( appDir, 'scripts' ) )

def executeUserSetup():
    # ....Kürzung....

    try:
        for path in sys.path:
            scriptPath = os.path.join( path, 'userSetup.py' )
            if os.path.isfile( scriptPath ):
                import __main__
                execfile( scriptPath, __main__.__dict__ )
    except Exception, e:
        sys.stderr.write( "Failed to execute userSetup.py\n" )
        sys.stderr.write( str( e ) )	

Diese Funktionen werden in basic.py aufgerufen und ausgeführt (in neueren Versionen batch.py gui.py).

basic.py


# ....Kürzung....

# Set up sys.path to include Maya-specific user script directories.
setupScriptPaths()

if not os.environ.has_key('MAYA_SKIP_USERSETUP_PY'):
    # Run the user's userSetup.py if it exists
    executeUserSetup()

Was ist mit dem vorhandenen maya sys.path?

Die Details hängen von Ihrer Umgebung ab, aber die Ordner sind ungefähr wie folgt.

1. 1. Modulpfad-Skriptordner (Plural)
2. Mayas Python-basierte Basisordner
3. 3. Benutzerumgebungsskriptordner (Plural)

In meiner Maya 2018-Umgebung habe ich dies wie folgt überprüft. (Ausgenommen besondere)

sys.Pfadbestätigungscode


import sys
for path in sys.path:
    if not path:
        continue
    print (i)

Ausführungsbeispiel


C:\Program Files\Autodesk\Maya2018\plug-ins\ATF\scripts
C:\Program Files\Autodesk\Maya2018\plug-ins\MASH\scripts
C:\Program Files\Autodesk\Maya2018\plug-ins\fbx\scripts
C:\Program Files\Autodesk\Maya2018\plug-ins\camd\scripts
C:\solidangle\mtoadeploy\2018\scripts
C:\Program Files\Autodesk\Maya2018\plug-ins\substance\scripts
C:\Program Files\Autodesk\Maya2018\plug-ins\xgen\scripts

C:\Program Files\Autodesk\Maya2018\bin\python27.zip
C:\Program Files\Autodesk\Maya2018\Python\DLLs
C:\Program Files\Autodesk\Maya2018\Python\lib
C:\Program Files\Autodesk\Maya2018\Python\lib\plat-win
C:\Program Files\Autodesk\Maya2018\Python\lib\lib-tk
C:\Program Files\Autodesk\Maya2018\bin
C:\Program Files\Autodesk\Maya2018\Python
C:\Program Files\Autodesk\Maya2018\Python\lib\site-packages

C:\Program Files\Autodesk\Maya2018\bin\python27.zip\lib-tk

C:/Users/rdj/Documents/maya/2018/prefs/scripts
C:/Users/rdj/Documents/maya/2018/scripts
C:/Users/rdj/Documents/maya/scripts

Schließlich. Teil zu beachten

Es scheint, dass Sie Folgendes beachten müssen.

1.userSetup.Die Ausführungsreihenfolge von py lautet sys.in Pfadreihenfolge
2.Documents/maya/userSetup im Benutzerordner, z. B. Skripte.py ist keine spezielle Behandlung
Bis zum letzten sys.userSetup am Pfad.Laufen neben den anderen als einer der Py
3. 3. In der Ausführungsdatei wird ein Python-Skript ausgeführt

Der Mechanismus ist sowohl für gute als auch für problematische Teile öffentlich zugänglich, was erstaunlich ist. .. ..

Recommended Posts

[maya] Wie eine maya userSetup.py funktioniert und ausgeführt wird
So bedienen Sie NumPy
[Ubuntu] So führen Sie ein Shell-Skript aus
So führen Sie Befehle mit einem Jupyter-Notebook aus
So bedienen Sie Linux von der Konsole aus
So führen Sie Maya Python-Skripte aus
So installieren Sie pip, numpy auf Autodesk MAYA
So bedienen Sie Linux von außen Vorgehensweise
So schreiben Sie eine GUI mit dem Befehl maya
Führen Sie die Python-Funktion von Powershell aus (wie Sie Argumente übergeben).
So führen Sie einen Befehl mit einem Unterprozess in Python aus
So bedienen Sie die Discord API mit Python (Bot-Registrierung)
Hinweise zum Betrieb von Firefox mit Selen unter Windows
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Schaben 2 Wie man kratzt
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
So installieren Sie Python
Wie man PyPI liest
So installieren Sie pip
Verwendung von Virtualenv
Verwendung von numpy.vectorize
So aktualisieren Sie easy_install
So installieren Sie archlinux
Verwendung von pytest_report_header
Wie man Gunicorn neu startet
So installieren Sie Python
Wie zum virtuellen Host
Wie man Selen debuggt
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Wie man JSON liest
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
So aktualisieren Sie Spyder
Verwendung von IPython
So installieren Sie BayesOpt
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Wie man Dotfiles züchtet
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
"Wie man Fukashigi zählt"
So installieren Sie Nbextensions
Verwendung von OptParse
Verwendung von return
So installieren Sie Prover9