除了在Maya应用程序内支持 Python,Maya也支持从独立Python解释器使用Maya Python模块。在执行批处理或从使用Python的另一应用程序(如 MotionBuilder 或 Composite)访问Maya功能时,这将非常有用。
我们提供了独立的Python解释器,已正确配置供导入Maya功能。
在 Windows和Linux上,运行Maya bin目录中的mayapy可执行文件。
在 Mac OS X上,运行 ../files/ Maya.app/Contents/bin中的mayapy可执行文件。
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() 调用将抛出异常,该异常将被安全捕捉。
使用不同的 Python 解释器
可以通过 Maya 随附 Python 解释器之外的 Python 解释器使用 Maya。但是,建议使用版本号与 Maya 中所含 Python 相同的 Python。若要使用另一解释器,必须设置正确的环境。
为 Python 解释器设置环境
在解释器初始化后(但要在 Maya 初始化前),将 Maya 的 site-packages 目录添加到 PYTHONPATH 环境变量,或将其添加到 Python 内的 sys.path。该目录是:
Windows:./Python/Lib/site-packages
Mac OS X:../files/Maya.app/Contents/Frameworks/Python.framework/Versions/Current/lib/python2.4/site-packages
Linux:../files/lib/python2.4/site-packages
将 MAYA_LOCATION 环境变量设定为指向 Maya 安装位置,以便 Maya 可以找到其资源。
在 Mac OS X 上,MAYA_LOCATION 必须设定为指向应用程序包(即 ../files/Maya.app/Contents)。
(Linux) 将 Maya 分发的 lib 目录添加到 LD_LIBRARY_PATH,以便 Python 可以在导入 Maya 时找到共享库。
提示在 Mac OS X 上,mayapy 可执行文件是 shell 脚本,可以进行复制和修改以使用其他 Python 安装。设置无脚本环境
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 的主包。)