脚本 > Python > 

Maya 中的 Python

 
 
 

Autodesk Maya 支持在任何用于使用 MEL 命令的地方使用 Python 样式的脚本。通过在 Maya 中实施 Python 脚本,可以提供与通过 MEL 提供的到本地 Maya 命令的相同访问权限。也就是说,所有的内置 Maya 命令(如 spherels 等)都可以通过 Python 访问。

对于作为 MEL 脚本编写的命令(实际上是 MEL 全局程序 (procs)),可以通过对访问 MEL 的调用 (maya.mel.eval) 访问。有关详细信息,请参见 MEL/Python 通信

注意 某些 MEL 内置函数并未在 Python 中提供,但它们通常都有对应的 Python 函数。这些函数包括数学函数(abssincos 等)和字符串函数(matchgmatchtokenize 等)。(可以将一组 MEL 内置函数视为 MEL 运行时库。)

Python 附带多种标准模块,它们可提供类似的功能。请参见 Python 文档,了解有关可用函数以及如何在 Python 脚本中使用这些函数的信息。

构建 PyQt for Maya 2014

构建 PyQt for Autodesk Maya 2014 时,必须使用 Microsoft 2010 Visual Studio 编译器。这不同于 Maya 2012 中的行为。

有关如何构建 PyQt 模块的副本的说明,请参见 autodesk.com/maya-docs 下的 PyQt 部分。

Python 命令参考(Python Command Reference)

Python 命令参考类似于 MEL 命令参考。有关所有 Python 命令的详细信息,请参见“Maya 帮助”(Maya Help)中的 Python 命令参考文档。

可以通过选择“帮助 > Python 命令参考”(Help > Python Command Reference)访问帮助或打开“Maya 帮助”(Maya Help)“帮助 > Maya 帮助”(Help > Maya Help)),当“帮助”(Help)打开后,请单击导航框架底部的 CommandsPython。

版本

Maya 通过 Maya 安装程序安装 Python。Maya 在所有受支持的平台上使用 Python 版本 2.7.3。Maya 的独立 Python 壳在 Windows 上的名称为 mayapy.exe,在 Linux 和 Mac OS X 上为 mayapy

外部资源

有关 Python 快速入门的信息(包括参考资料和资源),请访问以下网址:

在 Python 中和为 Python 初始化 Maya 环境

Maya 无论何时启动,都在 userSetup.py 文件中运行 Python 命令。可以使用该文件设置您的工作环境或执行常用 Python 命令,例如导入 maya.cmds 模块。

在 Maya 的初始化和设置阶段执行 userSetup.py 脚本;因此,只有用于设置工作环境并且与 Maya 功能没有依存关系的命令才能在该脚本中成功运行。

注意

您可以使用 maya.utils.executeDeferred() 延迟代码执行,直到初始化 Maya 场景之后再执行。有关详细信息,请参见 maya.utils

  1. 在以下文件夹中创建名为 userSetup.py 的文件:
    • Windows:<驱动器>:\Documents and Settings\<用户名>\My Documents\maya\<Version>\scripts
    • Mac OS X:~/Library/Preferences/Autodesk/maya/<version>/scripts
    • Linux:~/maya/<version>/scripts
  2. userSetup.py 文件中,键入您希望 Maya 在启动时运行的命令;例如 import maya.cmds as mc
    注意

    请确保使用正确的扩展名 (.py) 保存该文件。

将项目添加到 Python 路径中

若要将项目添加到 Python 的路径中,请执行下列操作之一:

  1. 在运行 Maya 之前设置 Maya.env 文件或您环境中的 PYTHONPATH
  2. Maya 运行后,附加到 userSetup.py 或其他脚本中的 sys.path

以下是一个附加 sys.path 的示例

import sys sys.path.append( '/Users/jdoe/maya/Scripts' )
注意userSetup.py 必须位于初始的 Python 路径 (sys.path) 中才能在启动时自动运行。可以通过设置环境变量 PYTHONPATH 将其添加到默认的 Python 路径。

MEL 和 Python 导入

如果您的路径中存在 MEL 脚本,则在访问该脚本包含的任何一个同名全局程序之前,您不需要获得它的来源。但是,Python 需要您在访问它包含的任何类或函数之前显式导入脚本;例如:

# This will access the function "bar" in the file "foo.py"
import foo
foo.bar()