确定PyQt是否在Maya中运行

时间:2014-02-13 06:57:12

标签: python pyqt maya

我一直在用PyQt为Maya制作工具。因此,它必须执行 Maya Command 。这意味着程序导入Maya Libraries。当我在IDLE(我使用Eclipse)上测试我的程序时,它让我烦恼。我想在IDLE上阻止 Maya Command ,并在Maya上启用。有没有办法找出它在Maya或IDLE上运行?

2 个答案:

答案 0 :(得分:2)

我所做的只是将import封装在try..except块中:

try:
    from maya import cmds
except ImportError:
    print 'Not Maya'

我的期望是Maya之外的代码有价值,但不适用于需要Maya API的函数。

答案 1 :(得分:1)

mhlester答案中的导入检查不适用于所有可能的设置 - 如果您在Eclipse中使用MayaPy.exe解释器,导入maya.cmds将为您提供一个空模块而不是引发导入错误(空模块获取如果启动maya.standalone则替换,否则它们仍然存在并且不会触发ImportError)

您可以通过查找模块中的实际命令来捕获它:

try:
    import maya.cmds as cmds
    cmds.about()
except  AttributeError:
    print "not Maya"  # cmds.about doesn't exist
except ImportError:
    print "not Maya"  # Maya modules not on the path