【问题标题】:Determine if PyQt is running within Maya确定 PyQt 是否在 Maya 中运行
【发布时间】:2014-05-08 13:59:08
【问题描述】:

我一直在用 PyQt 为 Maya 制作一个工具。因此,它必须执行 Maya 命令。这意味着程序导入 Maya 库。当我在 IDLE(我使用 Eclipse)上测试我的程序时,它困扰着我。我想在 IDLE 上阻止 Maya 命令,然后在 Maya 上启用。有什么方法可以查明它是在 Maya 还是 IDLE 上运行?

【问题讨论】:

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

标签: python pyqt maya


【解决方案1】:

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

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

我的期望是这段代码在 Maya 之外也有价值,但对于需要 Maya api 的函数却没有。

【讨论】:

    【解决方案2】:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-24
      • 2014-12-23
      • 2014-05-27
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      相关资源
      最近更新 更多