2014-02-13 44 views
1

我一直在用PyQt为Maya制作一个工具。所以,它必须执行玛雅命令。这意味着程序导入Maya库。当我在IDLE上测试我的程序(我使用Eclipse)时,它困扰了我。我想阻止IDLE上的Maya Command,并在Maya上启用。有没有办法找到它在Maya或IDLE上运行?确定PyQt是否在Maya中运行

+0

你能放在try-except块中使用Maya命令的部分?如果Maya命令失败,那么您知道您没有在Maya中运行,然后可以运行不同的代码。 – Schollii

回答

2

我要做的就是简单地总结我importtry..except块:

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

我的期望是有值玛雅超出此代码,而不是需要一个玛雅API函数。

+0

+1为简单的方法 –

+0

谢谢。我陷入了不必要的研究。 :) –

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 
相关问题