如果在Maya中成功导入模块,如何运行过程

时间:2013-04-24 17:23:47

标签: python procedure maya

我刚刚完成一个可以作为模块运行的脚本。我在原始脚本中进行了一个过程调用,因此它在导入时运行,打开我的GUI。

如果模块正确导入,我想打开此窗口。我该怎么做?

i.e 
try:
 import maya.cmds as cmds
except:
   pass

此处定义的#procedure

if __name__ == '__main__':
    createGUI()

当我在Maya中将我的脚本作为模块导入时,我的GUI无法打开,我做错了什么? 感谢

但是如果我使用pydoc来做文档和以前的格式,它确实输出正确。但是,如果我在if语句之外调用任何程序 今天晚些时候上传我的代码。

2 个答案:

答案 0 :(得分:0)

尝试在模块中打印__name__变量。在Maya中导入它时,它可能是其他模块的一部分,因此它不会是'__main__'。 这也有效:

import myModule 
myModule.createGUI()

答案 1 :(得分:0)

如果名称 == 主要是'如果我作为脚本在解释器中运行'的标准习惯用法。但是在模块中松散的所有语句都将在导入时执行。如果要在导入模块时运行代码,只需将可执行代码放在脚本的底部(这样所有名称都在被调用之前定义),它将在两个地方运行。

那说:。您真的不想编写在导入之外运行的代码,而不是简单的初始化和模块特定的设置。只需编写它就好了:

def create_my_gui():
   # do stuff

if name == "__main__":
   create_my_gui()

然后从Maya中导入它的任何代码中调用模块:

import myModule
myModule.create_my_gui()

这样你就可以决定gui何时弹出,而不是每次弹出模块时都出现。否则你无法查看模块来获取函数或类而不会导致gui运行。