Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Python调用MEL脚本-执行MEL脚本时出错_Python_File_Maya_Mel - Fatal编程技术网

从Python调用MEL脚本-执行MEL脚本时出错

从Python调用MEL脚本-执行MEL脚本时出错,python,file,maya,mel,Python,File,Maya,Mel,我正在尝试创建一个简单的Python脚本,该脚本将从Maya中调用MEL脚本来创建立方体。耶!应该是相当直截了当的,尽管我可能对源文件的语法有误 以下是我所拥有的: runMEL.py Python文件: 将maya.mel导入为mel def runMEL(): print ("Running MEL from Python!") mel.eval('"source D:\Maya_Python\myMELScript.mel;"') # source of the file me

我正在尝试创建一个简单的Python脚本,该脚本将从Maya中调用MEL脚本来创建立方体。耶!应该是相当直截了当的,尽管我可能对源文件的语法有误

以下是我所拥有的:

runMEL.py Python文件: 将maya.mel导入为mel

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

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 #
从Python运行MEL!
//错误:“源D:\Maya\u Python\myMELScript.mel;”;//
//错误:第1.40行:语法错误//
#错误:运行时错误:文件第5行:执行MEL脚本时出错
第1.40行:语法错误#

如果几乎正确,则必须将路径作为字符串传递并转义。此外,mel对向前的
/
和向后的
\
斜杠很挑剔,它期望
/

这应该做到: 注意:通常在python中,您可以编写路径以及

D:\\Maya_Python\\myMELScript.mel

但是mel不够聪明,因此它将逃逸转义符号:D

如果几乎正确,则必须将路径作为字符串传递并逃逸。此外,mel对向前的
/
和向后的
\
斜杠很挑剔,它期望
/

这应该做到: 注意:通常在python中,您可以编写路径以及

D:\\Maya_Python\\myMELScript.mel

但是mel不够聪明,所以它会避开转义符号:D

有没有具体的原因要通过笨拙的mel来实现?有没有具体的原因要通过笨拙的mel来实现?
mel.eval('source“D:/Maya\u Python/myMELScript.mel“)
会更整洁是的,看起来确实更好!而且更像是一种“pythonic”感谢您的贡献。下次请编辑,我会接受的:)谢谢。最后一件事,分号只需要在第二个求值行上吗?如何在MEL中使用相对路径?谢谢。@Ghouldool如果MEL命令是多行的,那么除了最后一行以外,其他所有行都需要分号。最后一行由文件的结尾分隔。
mel.eval('source“D:/Maya\u Python/myMELScript.mel“)
会更整洁一些是的,看起来确实更好!而且更像是一种“pythonic”感谢您的贡献。下次请编辑,我会接受的:)谢谢。最后一件事,分号只需要在第二个求值行上吗?如何在MEL中使用相对路径?谢谢。@Ghouldool如果MEL命令是多行的,那么除了最后一行以外,其他所有行都需要分号。最后一行由文件结尾分隔。