Python 确定PyQt是否在Maya中运行
我一直在用PyQt为Maya制作工具。因此,它必须执行Maya命令。这意味着程序将导入Maya库。当我在空闲状态下测试我的程序(我使用Eclipse)时,它会困扰我。我想在空闲时阻止Maya命令,只在Maya上启用。有没有办法确定它是在Maya上运行还是空闲?我所做的只是将我的Python 确定PyQt是否在Maya中运行,python,pyqt,maya,Python,Pyqt,Maya,我一直在用PyQt为Maya制作工具。因此,它必须执行Maya命令。这意味着程序将导入Maya库。当我在空闲状态下测试我的程序(我使用Eclipse)时,它会困扰我。我想在空闲时阻止Maya命令,只在Maya上启用。有没有办法确定它是在Maya上运行还是空闲?我所做的只是将我的导入包装在尝试中。块除外: try: from maya import cmds except ImportError: print 'Not Maya' 我的期望是,此代码在Maya之外有价值,但对于需
导入
包装在尝试中。
块除外:
try:
from maya import cmds
except ImportError:
print 'Not Maya'
我的期望是,此代码在Maya之外有价值,但对于需要Maya api的函数则没有价值。mhlester答案中的导入检查不会适用于所有可能的设置-如果您在Eclipse中使用MayaPy.exe解释器,则导入Maya.cmds将为您提供一个空模块,而不会引发导入错误(如果启动maya.standalone,则会替换空模块,否则它们仍然存在,不会触发导入错误) 您可以通过查找模块内的实际命令来了解这一点:
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
是否可以将使用Maya命令的部分放在“尝试除外”块中?如果Maya命令失败,则表明您没有在Maya中运行,然后可以运行不同的代码。