2017-12-13 32 views
0

私はキューブを作成するためにMaya内でMELスクリプトを呼び出す単純なPythonスクリプトを作成しようとしています。わーい!ソースファイルの構文が間違っている可能性があります。ここで PythonからMELスクリプトを呼び出す - MELスクリプトの実行中にエラーが発生しました

は、私が持っているものです。

runMEL.py Pythonのファイル:メル

def runMEL(): 
    print ("Running MEL from Python!") 
    mel.eval('"source D:\Maya_Python\myMELScript.mel;"') # source of the file 
    mel.eval("myMELScript;") #name of the function 

runMEL() # call the function above 

そして、MELスクリプトmyMELScript.melとして 輸入maya.mel

global proc myMELScript() 
// call a MEL script with Python 
{ 
    polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1; 
    print("MEL just made a cube!"); 
} 

私が手コンソールから以下を入力してください:

Running MEL from Python! 
// Error: "source D:\Maya_Python\myMELScript.mel;"; // 
// Error: Line 1.40: Syntax error // 
# Error: RuntimeError: file <maya console> line 5: Error occurred during execution of MEL script 
Line 1.40: Syntax error # 
+0

あなたはこれを厄介なメルを通じて延期したい特定の理由はありますか? – user1767754

答えて

2

あなたはほとんどそれを得た、あなたは文字列としてパスを渡し、それをエスケープする必要があります。さらにメルは/前後\スラッシュとうるさいですが、それはやるべき/

を期待:

mel.eval('source "D:/Maya_Python/myMELScript.mel"') 

:通常のpythonで、あなたのパスだけでなく、

D:\\Maya_Python\\myMELScript.mel 
を書くことができ

しかし、メルは巧妙ではないため、エスケープ記号をエスケープします。D

+1

'mel.eval( 'source" D:/Maya_Python/myMELScript.mel "')'は厄介ではない – Netwave

+0

ああ、確かに、はるかに良く見える!寄与してくれてありがとうございました。次回は編集してください、私はそれを受け入れているでしょう:) – user1767754

+0

ありがとうございます。ちょうど最後のことですが、セミコロンは2番目の評価ラインでのみ必要ですか? –

関連する問題