在 Maya 中,如何在 python 脚本中启动 python 脚本

In Maya, how to launch a python script in a python script

我想创建一个 def 来启动 str 变量中给定的脚本:

def launchScript(scriptname):
    import scriptname
    reload(scriptname)
    scriptname.do()

所以我能做到:

launchScript(test)

它会从我的测试脚本中启动 do() def

简单方法是让你的脚本可执行,然后使用execfile到运行它:像这样的东西:

# scriptfile.py

import maya.cmds as cmds
def do():
     cmds.polyCube(n='new_cube')

if __name__ == '__main__':
   do()

如果文件正在执行,if __name__ == '__main__' 块将 运行,但如果它作为模块导入则不会。严格来说,如果您知道您永远不会将该文件用作模块,那么您可以不用它。

在 Maya 中,您只需执行

 execfile ("path/to/scriptFile.py")

它会自动运行 do()。与导入模块不同,您不需要使用 reload(),文件中的所有内容都将在每个 execfile()

上重新完成

一般来说,这对于测试来说是好的,但不是您想要为生产代码做的事情——如果不出意外,您将花时间在每个 运行 上从磁盘读取文件.