我刚刚完成一个可以作为模块运行的脚本。我在原始脚本中进行了一个过程调用,因此它在导入时运行,打开我的GUI。
如果模块正确导入,我想打开此窗口。我该怎么做?
i.e
try:
import maya.cmds as cmds
except:
pass
此处定义的#procedure
if __name__ == '__main__':
createGUI()
当我在Maya中将我的脚本作为模块导入时,我的GUI无法打开,我做错了什么? 感谢
但是如果我使用pydoc来做文档和以前的格式,它确实输出正确。但是,如果我在if语句之外调用任何程序 今天晚些时候上传我的代码。
答案 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运行。