我想创建一个def,它正在启动str变量中给出的脚本:
itemSnapshot
所以我可以这样做:
def launchScript(scriptname):
import scriptname
reload(scriptname)
scriptname.do()
它将从我的测试脚本
启动 do() def答案 0 :(得分:0)
easy 方法是让您的脚本可执行,然后使用execfile
来运行它:像这样:
# scriptfile.py
import maya.cmds as cmds
def do():
cmds.polyCube(n='new_cube')
if __name__ == '__main__':
do()
如果文件正在执行,if __name__ == '__main__'
块将运行,但如果它作为模块导入则不会运行。严格地说,如果你知道你永远不会将文件用作模块,那么没有它就可以顺利通过。
在玛雅你只是做
execfile ("path/to/scriptFile.py")
它将自动运行do()
。与导入模块不同,您不需要使用reload()
,文件中的所有内容都将在每个execfile()
一般来说,这对于测试来说很好,但不是你想要为生产代码做的事情 - 如果没有其他的话,你将花费时间在每次运行时从磁盘读取文件。