ターミナル経由でバッチ レンダー コマンドを実行し、メル コールバックを使用して Python モジュールを実行する必要があります。
私が使用している端末コマンドは次のとおりです。
Render -preRender "python(\"import sys\nsys.path.append(\"/Volumes/raid/farm_script/\")\nfrom run_os import Farm\nFarm()\")" "/path/to/scene.mb";
基本的に、エスケープされた文字列内のコマンドは次のように読み取られる必要があります。
import sys
sys.path.append("/Volumes/raid/farm_script/")
from run_os import Farm
Farm()
Maya のスクリプト エディタでは、Python タブで上記のコマンドを実行すると、データが出力されます。
まったく同じスクリプトを mel タブで実行するが、python 関数にラップしても問題なく動作します。
の下にある「Farm」クラスに/Volumes/raid/farm_scripts/run_os.py
は、この小さな小さなスクリプトがあります。
class Farm():
def __init__(self):
self.run()
def run(self, *args):
print "=== TEST ===\n"
スクリプト エディターで印刷テストを表示していますが、バッチ レンダリング ターミナルで MEL コールバックを使用してこのコマンドを実行すると、「予期しないインデント エラー」が発生します。 、from run_os import Farm
だから私の質問は、なぜこの行がインデントエラーを作成するのかということです. \n
(改行)フラグを使用しているため、深刻な間違いがない限り、インデントはまったくありません!