找到 mayapy 命令的路径(Maya的预配置外部python解释器)
$ locate mayapy # result: /usr/autodesk/maya2014-x64/bin/mayapy
在终端
中启动Maya配置的python解释器 $ /usr/autodesk/maya2014-x64/bin/mayapy
创建一个球体
import maya.standalone
maya.standalone.initialize( name='python' )
cmds.sphere( radius=4 )
(这“工作”并返回以下结果:)
`[u'nurbsSphere1', u'makeNurbSphere1']`
问:我如何让这个球体出现在Maya(我已经打开)?
答案 0 :(得分:3)
每个maya独立会话都是它自己的maya副本 - 它没有以任何方式连接到你的maya开放实例。这就像在同一时间以gui模式打开两个maya会话一样。
如果要从IDE或外部连接到Maya,可以使用Maya中的commandPort命令来响应通过tcp发送的数据包(这里是example using the Wing IDE,这里是using Eclipse)。对于更复杂的东西,您可以使用远程过程调用库(如RPyC)远程与Maya会话进行交互。
答案 1 :(得分:1)
以下是我使用外部python在当前打开的Maya中创建新球体的方法。
1)在Maya中打开一个端口(在屏幕的底部有一个显示“MEL”的命令行)并输入:
commandPort -stp "python" -n ":5055" ;
2)在新窗口/终端中打开python shell并运行以下python代码在Maya中创建一个新球体:
import socket
maya = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
maya.connect(("127.0.0.1", 5055))
maya.send("""maya.cmds.polySphere( radius=4 )""")
上面的代码将在您当前运行的Maya中创建一个新的球体。你可以使用任何python终端(不一定是mayapy)。
(如果您正在运行python3,最后一个命令将产生错误,直到您将其更改为:
maya.send(bytes("""maya.cmds.polySphere( radius=4 )""", 'UTF-8'))