* 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.
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.
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.
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()
Wenn MAYA_SKIP_USERSETUP_PY in der Umgebungsvariablen gesetzt ist, wird executeUserSetup () nicht ausgeführt
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
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