スクリプトフォルダ整理して自分のやらフリーでもらってきたやつやらのスクリプトへのパスを通すのがすごいことになってたので、Pythonでスクリプト書いて、それをuserSetup.py内で呼ぶだけにしてみたのでメモ。
フォルダ階層や設定は以下になってるという想定で説明。
※サブフォルダは無視する
※先頭に「_」の付いたフォルダは除外する
※Maya.envでmyMel/myPythonフォルダへのパス(親フォルダ)だけは通しておく
○myMel
├_bk
├AAA
├BBB
└CCC
○myPython
├_bk
├DDD
├EEE
└FFF
作ったスクリプトの概要は以下
- MAYA_SCRIPT_PATH/PYTHONPATHを取得
- myMel/myPythonフォルダ以下にあるフォルダのリストを取得
- 2で取得したフォルダへのパスが1に入ってるかチェックして無かったら追加
実際のスクリプト例
import os import sys import maya.mel as mm sysMelPath='D:/Script/myMel/' sysPyPath = 'D:/Script/myPython/' melBaseLists = os.listdir( sysMelPath ) pyBaseLists = os.listdir(sysPyPath) sysPyFolder = [] MelPath = os.getenv('MAYA_SCRIPT_PATH').replace('\\', '/') PyPath = os.getenv('PYTHONPATH').replace('\\', '/') #Mel print '==========APPEND MEL PATH==========' for some in melBaseLists: somePath = os.path.join( sysMelPath, some) if os.path.isdir(somePath) and some[0] != '_' and somePath not in MelPath: MelPath += somePath + ';' print somePath mm.eval('putenv "MAYA_SCRIPT_PATH" "%s";' % MelPath) #Python print '==========APPEND PYTHON PATH==========' for some in pyBaseLists: somePath = os.path.join( sysPyPath, some) if os.path.isdir(somePath) and some[0] != '_' and somePath not in PyPath: sysPyFolder.append( somePath) sys.path.append(somePath) print sysPyFolder
MELとPythonで追加のコマンドと追加する場所が違うので分けました。
あとはuserSetup.py内でこれを呼ぶだけ。
Maya.envの恐ろしい地獄から解放されたー!
コメントを残す