除了在 Maya 应用程序内支持 Python,Maya 也支持从独立 Python 解释器使用 Maya Python 模块。在执行批处理或从使用 Python 的另一应用程序(如 MotionBuilder 或 Composite)访问 Maya 功能时,这将非常有用。
我们提供了独立的 Python 解释器,已正确配置供导入 Maya 功能。
Python 解释器加载后,必须加载和初始化 Maya。为此,请在窗口中键入以下内容:
import maya.standalone maya.standalone.initialize( name='python' )
这些命令的执行需要花费大量时间,因为它们将加载所有 Maya 库并初始化场景。
初始化程序只需要一个参数 (name),并且是可选的。name 参数为 Maya 提供应用程序的名称。name 的默认值是 python。
Maya 加载并初始化后,所有 Maya 功能都应可用(maya.cmds、maya.OpenMaya 等)。但是,在 Python 解释器中运行 Maya 相当于在批处理模式下运行 Maya。这意味着所有常规 Maya 批处理模式限制都存在,包括禁用 UI 命令。
Maya 在 Maya 内设定 PYTHONHOME 环境变量,在 Maya 外(即,使用外部解释器时)清除该变量。
try: import maya.standalone maya.standalone.initialize() except: pass
如果在 Maya 内部 Python 解释器中,initialize() 调用将抛出异常,该异常将被安全捕捉。
可以通过 Maya 随附 Python 解释器之外的 Python 解释器使用 Maya。但是,建议使用版本号与 Maya 中所含 Python 相同的 Python。若要使用另一解释器,必须设置正确的环境。
为 Python 解释器设置环境
在 Mac OS X 上,MAYA_LOCATION 必须设定为指向应用程序包(即 ../files/Maya.app/Contents)。
设置无脚本环境
1. 将 ../files/Maya.app/Contents/MacOS 添加到 DYLD_LIBRARY_PATH,以便 Python 可以找到 Maya 共享库。
2. 将 ../files/Maya.app/Contents/Frameworks 添加到 DYLD_FRAMEWORK_PATH,以便 Python 可以找到 Maya 所依赖的框架。
3. 将 MAYA_NO_BUNDLE_RESOURCES 设定为某些值。这将要求 Maya 通过 MAYA_LOCATION 查找资源,而不是通过查找主包。(当 Maya 以这种方式批处理运行时,主包不是 Maya 的主包。)